On Sun, Jan 17, 2010 at 11:35 PM, Dami Laurent (PJ) <
laurent.d...@justice.ge.ch> wrote:

>
>
>
> Indeed, this is exactly what I want to do. The app has a config file (not a
> Catalyst
> config file, but another file having to do with business logic), and some
> super-users
> have a mechanism for hot uploading of a new config to the server, at any
> time.
> A few app pages are expensive to compute, and they depend on the client and
> on that config file. So clients should keep asking for those pages at each
> request, and depending on the If-Modified-Since header and on the timestamp
> for the config file, the server can decide if it's worth recomputing the
> page for that client, or rather send a cheap 304 Not Modified.
>

Be careful about using timestamps if you are running multiple web servers
behind a load balancer (or may expand to where you will be behind a
balancer).  Here's a read on Etags:

 http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html

For resources such as css, js, images I tend to create URLs that include an
md5.  Those include cache headers that don't expire and thus when the
content changes the URL changes.

I have also done that with text/html pages, but it's less common.  For a
config file you can send the config through Object::Signature to get an
md5.  You could recalculate and cache that whenever a new config is
uploaded.

For "static" pages (for non-logged in users) the pages tend to get cached
for some number of minutes as it's not critical that a change is seen
exactly the same time by all users.  Dynamic content is not cached, of
course, but elements of the page may be cached in memcached.



-- 
Bill Moseley
mose...@hank.org
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to