<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Ajax vs Caching vs Firefox 3</title>
	<atom:link href="http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/</link>
	<description>A man needs a little madness, or else he never dares cut the rope and be free. -Nikos Kazantzakis</description>
	<lastBuildDate>Wed, 10 Mar 2010 09:45:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: A grateful developer</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-165709</link>
		<dc:creator>A grateful developer</dc:creator>
		<pubDate>Thu, 23 Apr 2009 07:47:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-165709</guid>
		<description>Thank you very much for this post, especially the code excerpt.
Been debugging this issue for hours and searching some explanations on the internet.

Finally, solved by copying the code above to my php script.

Thank you very much.

What a day (in a developer life).</description>
		<content:encoded><![CDATA[<p>Thank you very much for this post, especially the code excerpt.<br />
Been debugging this issue for hours and searching some explanations on the internet.</p>
<p>Finally, solved by copying the code above to my php script.</p>
<p>Thank you very much.</p>
<p>What a day (in a developer life).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Randyshaw</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-145487</link>
		<dc:creator>Randyshaw</dc:creator>
		<pubDate>Tue, 13 Jan 2009 16:00:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-145487</guid>
		<description>I have been using the timestamp in ms for years in my Ajax, but FF3 doesn&#039;t seem to be respecting it. My Ajax stopped working as soon as I upgraded to FF3, but it works in IE and Safari...
Any other ideas?</description>
		<content:encoded><![CDATA[<p>I have been using the timestamp in ms for years in my Ajax, but FF3 doesn&#8217;t seem to be respecting it. My Ajax stopped working as soon as I upgraded to FF3, but it works in IE and Safari&#8230;<br />
Any other ideas?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AndrewSeven</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-117274</link>
		<dc:creator>AndrewSeven</dc:creator>
		<pubDate>Fri, 12 Sep 2008 17:53:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-117274</guid>
		<description>KL: Pleas go tell the people devloping FireFox3 about the standard.

FF2 IE Safari and Chrome all respect the expiration date, but FF3 seems to need to be told explicity to recheck.</description>
		<content:encoded><![CDATA[<p>KL: Pleas go tell the people devloping FireFox3 about the standard.</p>
<p>FF2 IE Safari and Chrome all respect the expiration date, but FF3 seems to need to be told explicity to recheck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Code Swimming &#187; Firefox Caching Bug</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-111408</link>
		<dc:creator>Code Swimming &#187; Firefox Caching Bug</dc:creator>
		<pubDate>Sun, 17 Aug 2008 19:54:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-111408</guid>
		<description>[...] order, otherwise it will cache it even if the headers correctly specify not to.Â  More info here and [...]</description>
		<content:encoded><![CDATA[<p>[...] order, otherwise it will cache it even if the headers correctly specify not to.Â  More info here and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-106246</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Wed, 30 Jul 2008 17:28:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-106246</guid>
		<description>Hi Nicholas,

Thanks for the comment - I should have mentioned this technique as it can also be very effective.  It does have the benefit of being easier than trying to debug caching behaviour, where what you see can be deceiving.  I have even noticed that some of the JavaScript libraries have built in support for adding a timestamp parameter to Ajax requests.</description>
		<content:encoded><![CDATA[<p>Hi Nicholas,</p>
<p>Thanks for the comment &#8211; I should have mentioned this technique as it can also be very effective.  It does have the benefit of being easier than trying to debug caching behaviour, where what you see can be deceiving.  I have even noticed that some of the JavaScript libraries have built in support for adding a timestamp parameter to Ajax requests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nicholas</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-106207</link>
		<dc:creator>Nicholas</dc:creator>
		<pubDate>Wed, 30 Jul 2008 15:37:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-106207</guid>
		<description>I kept hitting this issue and rather than messing with cache configuration headers, I simply appended a parameter on the end of the (GET) URL using the javascript provided time in ms. That way, each url is unique and will never be read from cache. Hopefully your server side will gracefully ignore the unexpected extra parameter.</description>
		<content:encoded><![CDATA[<p>I kept hitting this issue and rather than messing with cache configuration headers, I simply appended a parameter on the end of the (GET) URL using the javascript provided time in ms. That way, each url is unique and will never be read from cache. Hopefully your server side will gracefully ignore the unexpected extra parameter.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-105935</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 29 Jul 2008 23:46:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-105935</guid>
		<description>Hi kL,

&gt; This looks bad. Very very bad, if you check RFC 2616. Try not abusing
&gt; no-store and must-revalidate, because they have specific, important
&gt; meaning and throwing them around puts pressure on browsers and 
&gt; proxies to ignore them (internet on the grand scale really needs
&gt; cacheable things).

Standards are a wonderful thing, but unfortunately we live in the Real World, where I need to make software that works in existing browsers.  I can&#039;t seriously be told that I am putting pressure on anyone by doing this.  Yes, &quot;the internet ... needs cacheable things&quot; - but perhaps I know my own application and know when caching is actually the wrong behaviour? 

&gt; You donâ€™t seem to be expert on the subject, judging by the fact that 
&gt; youâ€™ve seriously tried to use element for cache control.

I am no expert, nor did I claim to be.  However I do have some practical experience of what works and what doesn&#039;t, and so far this is the best solution I have found.

&gt; Cache-control: max-age=5 (itâ€™s freshness time in seconds) sent by the
&gt; server, and nothing sent by the client should do the trick.

This won&#039;t &quot;do the trick&quot; for at least two reasons:

1) As stated in my previous post, which I linked to, going back is also an issue, and AFAIK to solve it you must prevent the page from getting into the cache.  Funnily enough, this is because of how the standards define the behaviour of the back button.
2) 5 seconds is a complete fudge, as would be 1 second (even though less risky in practice).  The updates to these panels happen because something has changed, loading them from the cache is never the correct behaviour.

Did you even try to understand the use case I am talking about?  Have you *tried* it in real life?  Criticism is fine, but not when it is unecessarily agressive and plain wrong for the case I have discussed.</description>
		<content:encoded><![CDATA[<p>Hi kL,</p>
<p>> This looks bad. Very very bad, if you check RFC 2616. Try not abusing<br />
> no-store and must-revalidate, because they have specific, important<br />
> meaning and throwing them around puts pressure on browsers and<br />
> proxies to ignore them (internet on the grand scale really needs<br />
> cacheable things).</p>
<p>Standards are a wonderful thing, but unfortunately we live in the Real World, where I need to make software that works in existing browsers.  I can&#8217;t seriously be told that I am putting pressure on anyone by doing this.  Yes, &#8220;the internet &#8230; needs cacheable things&#8221; &#8211; but perhaps I know my own application and know when caching is actually the wrong behaviour? </p>
<p>> You donâ€™t seem to be expert on the subject, judging by the fact that<br />
> youâ€™ve seriously tried to use element for cache control.</p>
<p>I am no expert, nor did I claim to be.  However I do have some practical experience of what works and what doesn&#8217;t, and so far this is the best solution I have found.</p>
<p>> Cache-control: max-age=5 (itâ€™s freshness time in seconds) sent by the<br />
> server, and nothing sent by the client should do the trick.</p>
<p>This won&#8217;t &#8220;do the trick&#8221; for at least two reasons:</p>
<p>1) As stated in my previous post, which I linked to, going back is also an issue, and AFAIK to solve it you must prevent the page from getting into the cache.  Funnily enough, this is because of how the standards define the behaviour of the back button.<br />
2) 5 seconds is a complete fudge, as would be 1 second (even though less risky in practice).  The updates to these panels happen because something has changed, loading them from the cache is never the correct behaviour.</p>
<p>Did you even try to understand the use case I am talking about?  Have you *tried* it in real life?  Criticism is fine, but not when it is unecessarily agressive and plain wrong for the case I have discussed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kL</title>
		<link>http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/comment-page-1/#comment-105930</link>
		<dc:creator>kL</dc:creator>
		<pubDate>Tue, 29 Jul 2008 23:33:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.alittlemadness.com/2008/07/30/ajax-vs-caching-vs-firefox-3/#comment-105930</guid>
		<description>This looks bad. Very very bad, if you check RFC 2616. Try not abusing no-store and must-revalidate, because they have specific, important meaning and throwing them around puts pressure on browsers and proxies to ignore them (internet on the grand scale really needs cacheable things).

You don&#039;t seem to be expert on the subject, judging by the fact that you&#039;ve seriously tried to use  element for cache control.

Cache-control: max-age=5 (it&#039;s freshness time in seconds) sent by the server, and nothing sent by the client should do the trick.</description>
		<content:encoded><![CDATA[<p>This looks bad. Very very bad, if you check RFC 2616. Try not abusing no-store and must-revalidate, because they have specific, important meaning and throwing them around puts pressure on browsers and proxies to ignore them (internet on the grand scale really needs cacheable things).</p>
<p>You don&#8217;t seem to be expert on the subject, judging by the fact that you&#8217;ve seriously tried to use  element for cache control.</p>
<p>Cache-control: max-age=5 (it&#8217;s freshness time in seconds) sent by the server, and nothing sent by the client should do the trick.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
