Hi All! I've written a small, Dillo friendly wiki/cms system in php that I'm hoping to release in a few weeks. During testing (today's cvs), I found that Dillo's cache wasn't expiring the dynamic pages. Here's the header I was initially using to disable client caching: header("Expires: Sun, 22 Mar 1998 20:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Pragma: no-cache"); header("Cache-Control: post-check=0, pre-check=0"); With this header, Dillo's stdout messages reported "bad clocks"... so I tried sending the same date for Expires and Last-Modified. Dillo's stdout came back with: "Forcing min expire 60 on >the url< instead 0". What does that mean? I really need the content of certain pages to expire immediately when viewed. Any suggestions for the correct header parameters would be greatly appreciated. Thanks! -Tom
On Sun, 14 Dec 2003, Tom Lisjac wrote:
I've written a small, Dillo friendly wiki/cms system in php that I'm hoping to release in a few weeks. During testing (today's cvs), I found that Dillo's cache wasn't expiring the dynamic pages. Here's the header I was initially using to disable client caching:
header("Expires: Sun, 22 Mar 1998 20:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Pragma: no-cache"); header("Cache-Control: post-check=0, pre-check=0");
With this header, Dillo's stdout messages reported "bad clocks"... so I tried sending the same date for Expires and Last-Modified. Dillo's stdout came back with: "Forcing min expire 60 on >the url< instead 0". What does that mean?
you're using my patch? (it remainds, that i should try to clean up the cache patch for Jorge... oh well it's not easy work, i'm afraid...) Bad clocks means that the expiration time seems to be in history (compared to Last-Modified, when this header is present) for dillo at the time when the header was received, and is so more than 1000 seconds. These expirations are ignored, because many sites send these for all their content and it would otherwise cause dillo to always reload everything on these sites. For you're example - 1998 is very long history. Forcing min expire 60 - this is configurable using min_page_expire option in dillorc. When this config option is non-zero, dillo will set expiration times below this value (in seconds) to the config option value. It was introduced to give better speed with stupid news sites.
I really need the content of certain pages to expire immediately when viewed. Any suggestions for the correct header parameters would be greatly appreciated.
1. following dillorc options make it most agressivily reload everything: query_expire_time="0" min_page_expire="0" min_image_expire="0" 2. Use Cache-Control header: Cache-Control: no-cache
With this header, Dillo's stdout messages reported "bad clocks"... so I tried sending the same date for Expires and Last-Modified. Dillo's stdout came back with: "Forcing min expire 60 on >the url< instead 0". What does that mean?
you're using my patch?
I'm using the cvs version of dillo (0.8.0-pre) that I compiled a few days ago. I wanted to test with a generic Dillo so I didn't apply any patches.
Bad clocks means that the expiration time seems to be in history (compared to Last-Modified, when this header is present) for dillo at the time when the header was received, and is so more than 1000 seconds. These expirations are ignored, because many sites send these for all their content and it would otherwise cause dillo to always reload everything on these sites. For you're example - 1998 is very long history.
That makes sense... thanks for the explanation.
Forcing min expire 60 - this is configurable using min_page_expire option in dillorc. When this config option is non-zero, dillo will set expiration times below this value (in seconds) to the config option value. It was introduced to give better speed with stupid news sites.
I appreciate the performance goal but I'm also concerned that the displayed page reflects the content that the site wants to deliver. For example after a user post, collaborative pages need to display fresh content immediately.
I really need the content of certain pages to expire immediately when viewed. Any suggestions for the correct header parameters would be greatly appreciated.
1. following dillorc options make it most agressivily reload everything: query_expire_time="0" min_page_expire="0" min_image_expire="0"
Noted for client side use.
2. Use Cache-Control header:
Cache-Control: no-cache
This fixed standard post operations... thank you! I had been sending: header("Cache-Control: no-cache, must-revalidate"); ... but I guess the second parameter was causing a problem. The cache is still a problem on post operations followed by a 302 redirect. After posting a user note to an existing page, my application redirects back to the updated main page+notes. With Dillo the page is displayed from cache and doesn't show the note the user just added. Hitting refresh shows the updated page... but having to do this isn't desireable behavior for a collaborative site. I don't have the version of the app posted that looks nice with Dillo yet but adding a note to the following test page shows the problem. http://theseus.sourceforge.net/ewsbeta/index.php?wiki=DilloTest Thanks for the reply! -Tom
participants (2)
-
Madis Janson
-
Tom Lisjac