Что я хотел бы сделать, это добавить строку запроса в конец пути javascript, чтобы всякий раз, когда мое приложение обновлялось до новой версии, загружался javascript.До тех пор, пока строка запроса одинакова, я хочу, чтобы она продолжала использовать кэшированную версию без выполнения http-запроса, чтобы проверить, изменился ли скрипт.
Способ, которым я выполняю это в PHP,читать из тега CVS.Когда я создаю HTML для вывода, я читаю тег CVS и использую его для добавления в конец пути javascript, чтобы он создавал тег сценария, который выглядит следующим образом:
<script src="javascript/messages/shipments.js?TPRSAPPS-DEV2_090828145712237-BRANCH" type="text/javascript"></script>
Покаприложение не изменилось, тег останется прежним и, следовательно, строка запроса также останется.Браузер должен кешировать JS и вообще не выполнять сетевой запрос, потому что дата истечения срока давна.Каждый раз, когда приложение обновляется, эта строка запроса будет меняться, и браузер должен загрузить ее.
Это прекрасно работает в IE8.Моя проблема с Firefox.Firefox кэширует файлы, но в следующий раз, когда я загружаю страницу, Firebug показывает ответ 304, указывающий, что он все еще выполнял сетевой запрос для файла, а затем обнаружил, что он не изменился.
Итак, мой вопрос, игнорирует ли firefox заголовок expires и кеш javascript при наличии строки запроса?
Related: что Firefox решает не кэшировать? Очевидно, Rails делает нечто подобное.Но это не отвечает на мой вопрос.
Вот ответ, который я получаю от этого файла:
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
На вкладке Cache в Firebug написано:
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