Я вижу, что проблема с перерывами на моем конце (FF45 под Ubuntu). Некоторые файлы проверяются при каждой перезагрузке, а большинство - нет. Я не слишком уверен, что скажет Firefox, что такой-то файл должен быть проверен при каждой загрузке.
Согласно сообщению от jscher2000 по a blog, Firefox сначала проверяет Last-Modified и, если устарел, отправляет запрос; запрос, который будет содержать значение сервера ETag
в If-None-Match
, и я также могу увидеть заголовок If-Modified-Since
.
Вообще говоря, Firefox не перепродает или не проверяет кешированные файлы, которые еще не истекли. Вы можете изменить поведение Firefox, на стороне клиента, изменив настройки в о: конфигурации (по-видимому, вам нужно очистить кэш и перезапустить Firefox для того, чтобы изменения вступили в силу):
browser.cache.check_doc_frequency (по умолчанию после истечения срока) browser.cache.check_doc_frequency not working? @ mozillaZine Forums (очистить кэш/перезапуск)
похоже, мой параметр check_doc_frequency
установлен на 3, а это означает, что он должен проверить документы, только если они считаются как устареет.
Возможные значения и их эффекты
0 - Проверьте наличие новой версии страницы один раз за сеанс (а сессия начинается, когда первое окно приложения открывается и заканчивается, когда последнее окно приложения закрывается).
1 - Проверяйте новую версию каждый раз, когда загружается страница.
2 - Никогда не проверяйте новую версию - всегда загружайте страницу из кеша.
3 - Проверьте наличие новой версии, если страница устарела.(По умолчанию)
Одна вещь, которую я делаю, что я использую оба из следующих заголовков:
Cache-Control: max-age=3600
Expires: Sun, Mar 27 2016 21:13:50
Там может быть путаница какая-то, и если определяется только max-age
, то вы работаете в какой-то странный сценарий и пропустить этот конкретный случай.
На всякий случай, есть мой полный заголовок:
Cache-Control: max-age=3600,public
Connection: keep-alive, Keep-Alive
Date: Mon, 28 Mar 2016 02:56:20 GMT
Etag: 6b395ccb5b0a913f1828cce3e2756bdc
Expires: Mon, 28 Mar 2016 03:56:19 GMT
Keep-Alive: timeout=15, max=5
Server: Apache
Set-Cookie: ...
Дубликат "Keep-Alive" в соединении происходит от Apache.
Хорошо. Похоже, я ничего не могу сделать, кроме предоставления дополнительных советов - appcache и т. Д. Спасибо за головы (: –
Вам также нужно помнить, что кеши браузера не бесконечны, и все будет вытеснено из них (хотя в этом в случае, если вы не получите 304 - не измененный ответ, так как браузер больше не будет иметь оригинальную загрузку или Etag). На самом деле кеши браузера намного меньше, чем вы могли бы подумать, особенно на мобильных устройствах: http: // www. guypo.com/mobile-browser-cache-sizes-round-2/ –