Как отключить автономное кэширование HTML5 - PullRequest
3 голосов
/ 29 сентября 2011

Я уже некоторое время использую автономное кэширование HTML5 на своем веб-сайте, и по некоторым причинам я рассматриваю возможность его отключения. К моему удивлению, это не работает.

Вот как я реализовал автономное кэширование HTML5.

В моем index.html я даю путь к файлу манифеста

<html manifest="app.manifest">

В файле app.manifest я перечисляю все файлы js / css / png, которые я хотел бы кэшировать браузером для автономного использования. Каждый раз при развертывании обновлений я обновляю файл app.manifest, в результате чего браузер извлекает последнюю версию всех файлов, перечисленных в файле манифеста.

Чтобы отключить автономное кэширование, я изменил открывающий тег моего index.html на

<html>

Я сделал фиктивное изменение в файле app.manifest, чтобы браузер (который уже кэшировал мой веб-сайт) обнаружил изменение и загрузил последнюю версию всех файлов (включая index.html).

Что я заметил, так это то, что браузер действительно получает последнюю версию всех файлов. Я вижу новый тег <html> в обновленной версии без объявления манифеста, однако поведение браузера для будущих изменений не меняется. то есть теперь я ожидаю, что браузер немедленно загрузит новую версию файла index.html, когда он будет изменен на сервере. Однако этого не происходит. Браузер не загружает обновленный index.html, пока я не внесу какие-либо изменения в файл манифеста.

Таким образом, мне кажется, что браузер постоянно связывает файл app.manifest с URL-адресом моего веб-сайта и от него не избавится, даже если я не упомяну его в теге <html>.

Я проверял это на Google Chrome и Firefox, одинаковые результаты. Я также попытался перезапустить Chrome, но не забуду, что для моего сайта был определен app.manifest. Я не нашел обсуждения этого аспекта автономного кэширования в Интернете.

Обновление : мне удалось избавиться от поведения в Chrome, очистив все данные просмотра (перейдя в настройки). Но это не то, что я могу сказать пользователям.

1 Ответ

8 голосов
/ 29 сентября 2011

Сделать URL-адрес , возвращающий 404, чтобы указать, что вам больше не нужны автономные веб-приложения. В соответствии с шагом 5 из HTML5 §5.6.4 это помечает кэш как устаревший и удаляет его.

Вы также можете вручную удалить автономное веб-приложение в Chrome, выбрав about:appcache-internals.

...