Cookie 固然有其缺陷,比如数据存储量的限制、不能跨域、安全性问题,但是作为HTTP协议的一部分用来处理客户端和服务器通信是不可或缺的。
HTML5 增加的本地存储方案 - WebStorage,可以弥补Cookie的这些缺陷:容量更大,不和服务器交互,更安全,以更直观的方式存储键/值对。
WebStorage 包含两种机制: localStorage、sessionStorage。
1. sessionStorage存储的数据只在会话期间有效,关闭浏览器则自动删除。每个窗口的值都是独立的,不同窗口间的sessionStorage不可以共享。
2. localStorage在本地永久性存储数据,除非显式将其删除或清空。数据可跨越多个窗口,无视当前会话,被共同访问、使用。
localStorage、sessionStorage共用一个API:Storage。
属性:
localStorage.length: 只读属性。返回一个整数,表示存储在 Storage 对象里的数据项(data items)数量。
方法:
LocalStorage.key()
- 该方法接受一个数值 n 作为参数,并返回存储中的第 n 个键名。
LocalStorage.getItem()
- 该方法接受一个键名作为参数,返回键名对应的值。
LocalStorage.setItem()
- 该方法接受一个键名和值作为参数,将会把键值对添加到存储中,如果键名存在,则更新其对应的值。
LocalStorage.removeItem()
- 该方法接受一个键名作为参数,并把该键名从存储中删除。
LocalStorage.clear()
- 调用该方法会清空存储中的所有键名。