HTML5之Web存储
Web Storage(Web存储)提供了一种方式,让Web页面实现在客户端浏览器中以键值对的方式在本地保存数据。
一、Cookie存储
HTML4中在客户端存储简单用户信息的一种方式,它使用文本来存储信息。
1. 优点:
- 简单易用
- 浏览器自动管理不同站点的Cookie并负责发送数据
2. 缺点:
- 文本存储,安全性差,容易被窃取
- 存储的容量有限(4KB),数量也有限
- 浏览器安全级别最高时,可能会失效
- 会在服务器客户端间来回存储,影响速度、效率
二、localStorage和sessionStorage
在HTML5各项特性中,Web Storage的浏览器支持度比较好,目前所有主流浏览器都在一定程度上支持Web Storage。
1. localStorage
持久化的本地存储,除非主动删除数据,否则永远不会过期。
2.sessionStorage
针对session的数据存储,用户关闭浏览器后,数据会被删除。
3.优点
- 存储空间更大,各个浏览器实现略有不同,但都比cookie要大很多
- 与cookie不同,不会在与服务器交互时来回传输
- 提供了简单易用的接口
- 独立的存储空间
4.缺点
- 浏览器为每个域分配独立的存储空间,但是如果A域的页面嵌入B域的脚本,那么B域的脚本也可以访问A域的数据
- 存储的数据未加密且永远不会过期,容易造成隐私泄露
5.使用Web Storage(下面均在Chrome 43.0.2357.81m下测试)
- 获取对象:window.sessionStorage,window.localStorage
- 方法:setItem(k,v),removeItem(k),getItem(k),clear()和key(index)
- 属性:length,存储数据还可以简单的使用localStorage.key=value的方式
- 事件:onStorage(支持属性->key,oldValue,newValue,url,storageArea),不同浏览器注册方法不一样
- 多窗口的sessionStorage的数据不能共享,例如同时打开浏览器的2个tab,访问window.sessionStorage.visitCount得到的值是不同的,如果要在一个域名下共享某个变量值,考虑用localStorage或cookie
- onStorage事件:chrome下,只响应localStorage事件,对于sessionStorage中值的改变没响应,而且本窗口(当前tab)也不会产生storage事件通知到监听器,只会通知到其他窗口(针对这种情况下,有网友提出其他解决方式=>http://www.cnblogs.com/cczw/p/3196195.html)。
相关推荐
wusiye 2020-10-23
表格的现在还是较为常用的一种标签,但不是用来布局,常见处理、显示表格式数据。在HTML网页中,要想创建表格,就需要使用表格相关的标签。<table> <tr> <td>单元格内的文字</td> ...
gufudhn 2020-08-09
nercon 2020-08-01
swiftwwj 2020-07-21
nercon 2020-07-16
饮马天涯 2020-07-05
Lophole 2020-06-28
gufudhn 2020-06-12
csstpeixun 2020-06-11
huzijia 2020-06-09
WebVincent 2020-06-06
行吟阁 2020-05-30
qsdnet我想学编程 2020-05-26
gufudhn 2020-05-25
qsdnet我想学编程 2020-05-19
suixinsuoyu 2020-05-15
HSdiana 2020-05-15
PioneerFan 2020-05-15