我們在使用offline cache的時候,有時候可能會更新資源,如js,css或者圖片的 更新。但是在沒有更新以前用戶已經緩存了舊版本的資源,當在次訪問的時候 他使用的還是舊版本的資源,如何才能讓用戶及時的更新緩存資源呢?
更新緩存資源主要有兩種方法,通過修改配置文件的版本號或者調用js完成更新 (腳本之家 )
js更新方法
復制代碼
代碼如下:
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { window.applicationCache.update(); }
修改文件
更新manifest文件
瀏覽器發現manifest文件本身發生變化,便會根據新的manifest文件去獲取新的資源進行緩存。
當manifest文件列表並沒有變化的時候,我們通常通過修改manifest注釋的方式來改變文件,從而實現更新。
注釋改變就是指配置文件的版本號
摘自(http://www.ttwshell.com/article/HTML5-CSS-JS-Tips-Disable-Cache.html)
Meta法
目前在chrome調試還沒有遇到問題,好用!此方法假設瀏覽器是個好人!很聽我們的話!
<meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="0">
如果不明白,可以看我的另一篇文章HTML5 meta標簽的總結。
隨機數法 Cache Buster
隨機數法本身相當於渲染模板時添加版本號,在某些版本的瀏覽器,此法無效。此方法假設瀏覽器是個小壞蛋!他有可能調皮,不聽我們的話!
<script> var js = document.createElement("script"); js.src = "test.js?random" + Math.random(); document.body.appendChild(js); </script>