Wil*_*ill 40 javascript github browser-cache
Github页面在所有服务内容上设置非常积极的缓存标头(Cache-Control: max-age=864001天,Expires提前1个月).
如果您更新页面并推送到github,那么重新访问已经拥有缓存副本的页面的人将无法获得新页面而无需实际清理其浏览器缓存.
如何在页面中运行的脚本确定它是陈旧的并强制更新?
步骤可能是:
window.locationforgithub.com/$id$.那你怎么知道你的版本是什么?window.location.reload(true)在Safari/Chrome中不起作用,例如......所以它解决了这些步骤; 当然可能有另一种方式?
rsp*_*rsp 37
为了更好地控制网站的缓存,您可以使用HTML5缓存清单.看到:
您可以使用它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);
Run Code Online (Sandbox Code Playgroud)
为了避免一些混淆,我将添加GitHub为cache.manifest文件设置正确的HTTP头:
Content-Type: text/cache-manifest
Cache-Control: max-age=0
Expires: [CURRENT TIME]
Run Code Online (Sandbox Code Playgroud)
所以你的浏览器知道它是一个缓存清单,应该始终检查新版本.
| 归档时间: |
|
| 查看次数: |
9067 次 |
| 最近记录: |