一 众所周知,H5的storage有sessionstorage&localStorage,其中他们的共同特点是API相同
下面直接上代码,storage中的存储与删除:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>H5的storage</title> </head> <body> <input type='button' οnclick='setItems()' value='存值' /> <input type='button' οnclick='getItems()' value='取值' /> <input type='button' οnclick='deleteItem()' value='删除' /> </body> <script src="js/jquery.min.js"></script> <script> //localStorage存值永久有效 function setItems(){ var user = {}; user.name = 'Adam Li'; user.age = 25; user.home = 'China'; localStorage.setItem('userinfo',JSON.stringify(user)); } //localStorage取值 function getItems(){ var data = JSON.parse(localStorage.getItem('userinfo')); console.log("name:"+data.name+'\r age:'+data.age+"\r home:"+data.home); } //localStorage删除指定键对应的值 function deleteItem(){ localStorage.removeItem('userinfo'); console.log(localStorage.getItem('userinfo')); } </script> </html>
而 cookie localStorage sessionStorage 区别
1、cookie
- 在客户端记录信息确定用户身份。
- 由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。就给客户端们颁发一个通行证,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。
-
客户端发送一个http请求到服务器端服务器端发送一个http响应到客户端,其中包含Set-Cookie头部客户端发送一个http请求到服务器端,其中包含Cookie头部
2、localStorage
-
localStorage 是 HTML5 标准中新加入的技术,规则事先已经设定好了,要访问同一个localStorage对象,页面必须来自同一个域名,子域名无效,使用同一种协议,在同一个端口,数据会保留到通过js删除或者用户删除浏览器缓存。
3、sessionStorage
-
sessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 localStorage 不同。可以将一部分数据在当前会话中保存下来,刷新页面数据依旧存在。但当页面关闭后,sessionStorage 中的数据就会被清空。
4、三者对比
特性 | Cookie | localStorage | sessionStorage |
---|---|---|---|
存放位置
|
浏览器端
|
浏览器端 |
浏览器端 |
数据的生命期 | 可设置失效时间,默认是关闭浏览器后失效 | 除非被清除,否则永久保存 | 仅在当前会话下有效,关闭页面或浏览器后被清除 |
存放数据大小 | 4K左右 | 一般为5MB | 一般为5MB |
作用域
|
同源窗口中共享
|
同源窗口中共享
|
不可在不同浏览器窗口中共享
|
与服务器端通信 | 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题。(服务器与客户端可互传) | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 | 仅在客户端(即浏览器)中保存,不参与和服务器的通信 |