Обновление кэшированных элементов в кэше приложения HTML5 (Chrome) - PullRequest
1 голос
/ 13 сентября 2011

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

Я прошел учебник по кешу приложений, и он работал хорошо ... слишком хорошо.

Большинство сценариев в моем приложении объединены и сведены к минимуму как часть моего процесса развертывания, с единственным исключением, являющимся jQuery. Для jQuery я использую копию, размещенную в Google.

Это вызывало проблемы, когда я загружал страницу во второй раз, после того, как она была кэширована, так как jQuery не кэшировался и не загружал ее.

Я изменил его так, чтобы jQuery был интегрирован с другими свернутыми скриптами, но у меня все еще была проблема. Я изменил манифест и, насколько я могу судить, Chrome загрузил обновленный манифест, но не загрузил в него ни одного из обновленных ресурсов.

Я даже удалил атрибут manifest из тега HTML, но он все равно не обновил бы страницу. Мне нужно было закомментировать /index.html из манифеста, чтобы обновить страницу.

Так что, похоже, что обновление манифеста ничего не даст, если вы все еще кэшируете те же ресурсы. Я что-то упускаю? Есть ли в файле манифеста принудительная загрузка, если кэшированные элементы старше определенной даты?

Отредактировано, чтобы добавить: я делаю тестирование на Chrome (стабильный).

1 Ответ

0 голосов
/ 13 сентября 2011

Мне удалось заставить его работать, явно установив заголовки кэша только для файла манифеста, чтобы принудительно не кэшировать файл манифеста. Я добавил это в свой .htaccess:

<Files ~ "\.mf">
    ExpiresActive On
    ExpiresDefault "access"
</Files>

Обратите внимание, что я использую .mf в качестве расширения моего файла ... Если вы используете .appcache, измените mf на appcache.

...