2015-05-04 2 views
1

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

Есть много способов, чтобы заставить перезагрузки:

  1. Использование HTML5 манифеста и "applicationCache"

  2. Используя временную метку в JavaScript "сценарий тег".

  3. Сервер: Разные HTML заголовок с "Cache-Control: нет-кэша, нужно обязательно перепроверять"

Однако, они не кажется, как хорошие и чистые решения. Мы не хотим предоставлять автономное решение с помощью HTMl applicationCache.

Вопрос: Есть ли способ использовать файл манифеста (или что-то еще), чтобы предоставить клиенту версию, и если версия изменится, браузер автоматически перезагрузит свой кеш? Возможно, с HTML5 applicationCache, но мы не хотим использовать сайт в автономном режиме и хранить все. Мы просто хотим сообщить браузеру очистить свой сгенерированный кеш.

Если я правильно понимаю это, это невозможно или отличается использованием HTML5 applicationCache. Пожалуйста, исправьте меня, если я ошибаюсь.

+0

Есть ли шанс, что вы могли бы использовать PHP в своем проекте? Вы можете установить устаревшую дату истечения срока действия в PHP, и она автоматически обновится –

+0

Нет, мы не используем PHP в нашем проекте. Я уверен, что мы сможем добиться этого, изменив заголовок html с сервера, но я не думаю, что это должно быть так. – tkler

ответ

1

Один общий подход заключается в следующем:

  1. У основной HTML-файл (например, index.html) подается с Cache-Control: no-cache, must-revalidate и maxage и такие (в основном, не позволяйте ему быть в кэше)

  2. Используйте номера версий в именах ресурсов, которые он загружает, например script-v6.js, а затем script-v7.js, когда он изменился, обслуживая эти ресурсы с заголовками с большим будущим, чтобы они могли кэшироваться в течение длительного времени

  3. Очевидно, что в разработке у нас есть простые имена файлов; номер версии добавляется процессом сборки, который выполняет все другие функции сборки, такие как минификация, объединение файлов и т. д.

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