Ответ 1
Чтобы лучше контролировать кеширование вашего сайта, вы можете использовать манифест кэша HTML5. См:
- Руководство для начинающих по использованию кэша приложений на скалах HTML5
- Использование кэша приложений в сети разработчиков Mozilla
- Кэш файл в HTML5 в Википедии
- Офлайновые веб-приложения Примечание рабочей группы W3C
- автономные веб-приложения в WHATWG
Вы можете использовать window.applicationCache.swapCache()
для обновления кэшированной версии вашего сайта без необходимости ручной перезагрузки страницы.
Это пример кода из HTML5 Rocks, в котором объясняется, как обновлять пользователей до последней версии вашего сайта:
// Check if a new cache is available on page load.
window.addEventListener('load', function(e) {
window.applicationCache.addEventListener('updateready', function(e) {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Browser downloaded a new app cache.
// Swap it in and reload the page to get the new hotness.
window.applicationCache.swapCache();
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
} else {
// Manifest didn't changed. Nothing new to server.
}
}, false);
}, false);
Чтобы избежать некоторой путаницы, я добавлю, что GitHub устанавливает правильные заголовки HTTP для файлов cache.manifest:
Content-Type: text/cache-manifest
Cache-Control: max-age=0
Expires: [CURRENT TIME]
чтобы ваш браузер знал, что это манифест кэша, и что он всегда должен быть проверен для новых версий.