Note that there are some explanatory texts on larger screens.

plurals
  1. PODoes Firefox cache javascript and use it without a request if there is a querystring in the path?
    primarykey
    data
    text
    <p>What I would like to do is append a query string on the end of the javascript path so that whenever my application is updated to a new version, the javascript is downloaded. As long as the query string is the same however, I want it to keep using the cached version without doing a http request to check to see if the script has changed.</p> <p>The way I am accomplishing this in PHP is to read from the CVS tag. When I am building the HTML to output, I read the CVS tag and use that to append to the end of the javascript path so that it creates a script tag that looks like this:</p> <pre><code>&lt;script src="javascript/messages/shipments.js?TPRSAPPS-DEV2_090828145712237-BRANCH" type="text/javascript"&gt;&lt;/script&gt; </code></pre> <p>As long as the app hasn't changed, the tag will stay the same and therefore the query string will also. The browser should cache the JS and not do a network request at all because the expire date is far future. Each time the app is updated, that query string will change and the browser should download it.</p> <p>This works great in IE8. My problem is with Firefox. Firefox caches the files, but the next time I load the page Firebug shows a 304 response, indicating that it still did a network request for the file and then found that it hadn't changed.</p> <p>So my question is, does firefox ignore the expires header and cache of javascript when there is a query string?</p> <p>Related: <a href="https://stackoverflow.com/questions/7372345/what-does-firefox-decide-not-to-cache">what does firefox decide not to cache?</a> Apparently Rails does something similar. But this doesn't answer my question.</p> <p>Here is the response I am getting back on this file:</p> <pre><code>https://appdev.prsx.net/~jhargett/PRSApps-Motorlog/javascript/menuReader.js?TPRSAPPS-DEV2_090828145712237-BRANCH-DIFFERENT HTTP/1.1 304 Not Modified Date: Mon, 03 Oct 2011 18:35:26 GMT Server: Apache/2.2.3 (Red Hat) Connection: close Etag: "179010-3f8-49a9a74334200" Vary: Accept-Encoding </code></pre> <p>The Cache tab in Firebug says:</p> <pre><code>Last Modified Mon Oct 03 2011 13:35:26 GMT-0500 (Central Daylight Time) Last Fetched Mon Oct 03 2011 13:35:26 GMT-0500 (Central Daylight Time) Expires Fri Oct 28 2011 18:33:31 GMT-0500 (Central Daylight Time) Data Size 345 Fetch Count 12 Device disk </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload