记录localStorage、sessionStorage和cookie的使用。json
存储内容:数组、图片、json、样式、脚本等只要能序列化为字符串的均可以
大小:每一个域名5M
遇到的问题:SecurityError (DOM Exception 18): The operation is insecure
.
须要在服务器状态下使用,若是以file://状态使用会DOM异常的错误数组
window.localStorage.setItem('name', 'tanyue'); //设置名称为“name”的值 关闭浏览器不会消失 window.localStorage.setItem("email", 'tanyuetz163.com'); //设置名称为“email”的值 关闭浏览器不会消失 window.sessionStorage.setItem("email", 'tanyuetz163.com'); //获取名称为“email”的值 关闭浏览器消失
var local = window.localStorage.getItem('name'); //获取name的值 var session = window.sessionStorage.getItem('email'); //获取email的值 console.log(local); console.log(session);
var storage = window.localStorage; for (var i = 0, len = storage.length; i < len; i++) { var key = storage.key(i); var value = storage.getItem(key); console.log(key + "=" + value); }
window.localStorage.removeItem('name'); //移除name属性 window.sessionStorage.removeItem("email"); //移除email属性
window.localStorage.clear(); //清除localStorage
当网页要发送http请求时,浏览器会首先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮咱们作的,并且每一次http请求浏览器都会自动添加cookie,所以身份验证信息会很适合放置在cookie中浏览器
document.cookie = "name=Jonh; age=12; class=111"; //不能经过这种方式设置多个cookie //只能经过这种屡次添加的方式设置cookie document.cookie = "name=abc"; document.cookie = "age=22"; //修改cookie 从新赋值 document.cookie = "class=222"; //删除删除 cookie //删除一个cookie 也挺简单,也是从新赋值,只要将这个新cookie的expires 选项设置为一个过去的时间点就好了。但一样要注意,path/domain/这几个选项必定要旧cookie 保持同样。 var date = new Date(); date.setTime(date.getTime() - 10000); document.cookie = "name=Jonh; expires=" + date.toGMTString(); //cookie编码 // cookie实际上是个字符串,但这个字符串中逗号、分号、空格被当作了特殊符号。因此当cookie的 key 和 value 中含有这3个特殊字符时,须要对其进行额外编码,通常会用escape进行编码,读取时用unescape进行解码;固然也能够用encodeURIComponent/decodeURIComponent或者encodeURI/decodeURI