HTML5 离线存储,有何不同

html-css012

HTML5 离线存储,有何不同,第1张

HTML5 提供了两种在客户端存储数据的新方法:

localStorage - 没有时间限制的数据存储 (关闭浏览器依然存在)

sessionStorage - 针对一个 session 的数据存储 (关闭浏览器后即清空)

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

HTML5 使用 JavaScript 来存储和访问数据。

HTML5离线存储和本地缓存

一.离线存储

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

   1.在index.html里加上<html manifest="test.manifest">

   2.manifest清单格式如下

CACHE MANIFEST

#上面一句必须

#v1.0.0

#需要缓存的文件

CACHE:

a.js

b.css

#不需要缓存的文件

NETWORK:

*

#无法访问页面

FALLBACK:

404.html

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

   注意点:

   1.对于每个index.html?id=1或index.html?id=2都会分别缓存index.html页面,可以通过chrome浏览器Resources/Application Cache观察

   2.如果想更新缓存内容,只要修改下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