JavaScript学习教程之cookie与webstorage(2)

webstorage并不是要替代cookie,而是为了弥补随着web的发展,cookie在存储限制(存储容量最多为4k),安全性(在http协议中明文传输)存在的缺点而提出的

两者的API是相同的

function intro
setItem(key, value)   以键值对的形式保存一条数据  
getItem(key)   根据键来获得值  
removeItem(key)   根据键来删除一条数据  
key(index)   根据索引获得键的名称  
clear()   删除全部数据  

两者都有length属性

sessionStorage.setItem("name", "Jack"); sessionStorage.setItem("phone", "18856894523"); console.log(sessionStorage.getItem('name')); // Jack console.log(sessionStorage.key(0)); // name console.log(sessionStorage.length); // 2 sessionStorage.removeItem('phone'); console.log(sessionStorage.length); // 1 sessionStorage.clear(); console.log(sessionStorage.length); // 0

两者的比较

localStorage和sessionStorage都是用来存储客户端临时信息的对象。均只能存储字符串类型的对象,虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现。

localStorage生命周期是永久,除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,sessionStorage存储的数据就被清空了。

不同浏览器无法共享localStorage或sessionStorage中的信息。

相同浏览器的不同页面(页面属于相同域名和端口)间可以共享相同的localStorage

不同页面或标签页间无法共享sessionStorage的信息。注意,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且属于同源页面,那么他们之间是可以共享sessionStorage的。

使用window.open打开页面和改变localtion.href方式都可以获取到sessionStorage内部的数据

cookie 与 webstorage的区别

存储限制

每个domain中只能存储最多20条cookie,cookie数据不能超过4K

webStorage也有存储大小的限制,但是比cookie大得多,可以达到5M或更大

数据的有效期

sessionStorage:仅在当前的浏览器窗口关闭有效;

localStorage:始终有效,除非用户手动删除

cookie:cookie过期时间之前一直有效,即使窗口和浏览器关闭

作用域

sessionStorage:不在不同的浏览器窗口中共享,即使是同一个页面;

localStorage:同源窗口共享

cookie:同源窗口共享

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b6d6aaacd3c3e39938f9f0f4316c4b46.html