Html5 本地存储(Web Storage)

1,268 阅读2分钟

一、先说说cookie

1、大小的限制:cookie的大小被限制在4KB

2、带宽的限制:只要有涉及cookie的请求,cookie数据都会在服务器和浏览器间来回传送。这样无论访问哪个页面,cookie数据都会消耗网络的带宽

3、安全风险:由于cookie会频繁地在网络中传送,而且数据在网络中是可见的,因此在不加密的情况下,是有安全风险的。

二、用Web Storage存储的优势

Web Storage可以在客户端保存大量的数据,而且通过其提供的接口,访问数
据也非常的方便。然而,WebStorage的诞生并不是为了替代cookie,相反,是
为了弥补cookie在本地存储中表现的不足。

1、存储容量:提供更大的存储容量。在Firefox、Chrome、Safari和Opera中,每个网域为5MB;在IE8及以上为10MB。

2、零带宽:Web Storage因为是本地存储,不与服务器发生交互行为,所以不存在带宽的占用。

3、编程接口:Web Storage提供了一套丰富的编程接口,使得数据操作更加方便

4、独立的存储空间:每个域都有独立的存储空间,各个存储空间是完全独立的,因此不会造成数据的混乱。

因此,Web Storage并不能完全替代cookie,cookie能做的事情,Web Storage不一定能做到,如服务器可以访问cookie数据,但是不能访问Web Storage数据。所以Web Storage和cookie是相互补充的,会在各自不同领域发挥作用。
随着移动互联网的发展,浏览器端的富应用必然是一种趋势。

三. 会话存储(sessionStorage)和本地存储(localStorage)的区别

Web Storage包括会话存储(sessionStorage)和本地存储(localStorage)
。熟悉Web变成的人员第一次接触WebStorage时,会自然的与session和cookie
去对应。不同的是,cookie和session完全是服务器端可以操作的数据,但是se
ssionStorage和localStorage则完全是浏览器客户端操作的数据。sessionStor
age和localStorage完全继承同一个StorageAPI,所以sessionStorage和localS
torage的编程接口是一样的。sessionStorage和localStorage的主要区别在于
数据存在的时间范围和页面范围。

1、sessionStorage数据只在构建他们的窗口可见,关闭窗口数据就会被清除
2、localStorage数据可共享于同源(域名,协议,端口相同)窗口,数据永
久保存,废除自己清楚浏览器保存数据

四. 保存和获取Storage数据

1、保存数据到sessionStorage或localStorage
    window.sessionStorage.setItem("key","value")
    window.localStorage.setItem("key","value")
    Key为键是保存到客户端的数据名,value为值,setItem()表示保存数据的方法
    注意:需要使用JSON.stringify()转化为字符串

2、从sessionStorage或localStorage中获取数据
    value = window.sessionStorage.getItem("key")
    value = window.localStorage.getItem("key")
    注意:使用数据需要使用JSON.parse()转化为原始类型