2013-03-01 2 views
4

При настройке предпочтительной онлайн-установки я ожидаю, что браузер запросит страницу при каждом обновлении браузера, но это не так.Проблема с показателем кэша «предпочитает-онлайн»

Вот мой манифест:

CACHE MANIFEST 

SETTINGS: 
prefer-online 

NETWORK: 
* 

Тем не менее, когда я обновить браузер он запрашивает только манифест к серверу. Он запрашивает только страницу, когда я обновляю манифест ...

И нет заголовков (срок действия или максимальный возраст), установленных на странице.

(проверено на хроме & FireFox)

NB: При обновлении манифеста, браузер повторно загружает активы, но по-прежнему отображается старая версия ... Это только на следующей загрузке, что браузер будет использовать новые активы. Зачем ?

+0

Та же проблема здесь. Мастер-объекты должны быть перезагружены автоматически, если это возможно, но, похоже, не работают, по крайней мере, в Chrome. – kuncajs

ответ

0

Я не вижу, для чего предназначен манифест AppCache, поскольку вы хотите обойти кеш и просто использовать сеть. Имейте в виду, что обычное кэширование может все еще применяться независимо от манифеста AppCache, поэтому проверьте Expires, Last-Modified и аналогичные заголовки.

Что касается вашего вопроса:

NB: При обновлении манифест, браузер повторно загружает активы, но по-прежнему отображается старая версия ... Это только на следующей загрузке, что браузер будет использовать новые активы. Зачем ?

Это связано с тем, что пользовательский агент немедленно использует новейшую кешированную версию ваших активов, а затем начнет проверку связанных ресурсов, перечисленных в манифесте, для обновлений. Когда пользовательский агент обнаруживает, что манифест изменился, и, следовательно, он должен проверить наличие обновлений, он запустит событие checking.

Когда процесс проверки обновлений завершен (и может потребоваться много времени, если у вас много ресурсов), он запустит событие updateready. Только извлеченные ресурсы после это событие будет новым (поэтому советуем использовать window.applicationCache.swapCache(), чтобы сообщить обозревателю обменивать старый кеш для нового для загрузки следующей страницы или просто перезагружать страницу и выполняться с этим).

Вы найдете более подробные пояснения по этим темам здесь: http://www.html5rocks.com/en/tutorials/appcache/beginner/

+0

Относительно «Это связано с тем, что пользовательский агент немедленно использует новейшую кешированную версию ваших активов»: это не должно быть правдой при использовании флажка SETTINGS «предпочитайте онлайн». – stolsvik

Смежные вопросы