HTML5离线存储和本地缓存

一、离线缓存

有一个 web 应用有三个文件 index.html,a.js,b.css,现在需要把 js 和 css 文件缓存起来

1.在 index.html 里加上

2.manifest 清单格式如下

 CACHE MANIFEST
#上面一句必须
#v1.0.0
#需要缓存的文件
CACHE:
a.js
b.css
#不需要缓存的文件
NETWORK:
*
#无法访问页面
FALLBACK:
404.html
复制代码

3.manifest 文件的 mime-type 必须是 text/cache-manifest 类型

注意点:
a.对于每个 index.html?id=1 或 index.html?id=2 都会分别缓存 index.html 页面,可以通过 chrome 浏览器 Resources/Application Cache 观察
b.如果想更新缓存内容,只要修改下 manifest 文件即可,如改版本号 v1.0.1

4.离线存储如果资源有更新,可以通过如下代码来监听,但第一次加载还会是原来的版本

 window.applicationCache.addEventListener('updateready',function(e){
    if(window.applicationCache.status == window.applicationCache.UPDATEREADY){
        window.applicationCache.swapCache();
        if(confirm("loding new?")){
            window.location.reload()
        }
    }
},false)

二、本地缓存

localStorage.setItem("key","value")

localStorage.getItem("key","value")

localStorage.removeItem("key")

localStorage.clear()

1.本地存储永不过期,除非自己去清除

2.可以通过 chrome 浏览器 Resources/Local Storage 来查看

3.不同域下就算 key 相同取不到的值也不同,如 localhost 和 127.0.0.1