浏览器存储在开发中经常用到,比如在多页面应用的模型中,会将用户的页面历史记录存储在本地,页面前进时,在本地添加一条历史记录,页面返回时,删除最后一条历史记录,再访问最后一条历史记录(盒端的返回规则并不像标准浏览器这么规范,也没有后退按钮,不同厂家的盒子,系统对返回处理逻辑不同,一般自己处理页面的返回);应用内设备相关类信息(卡号,地区码,设备id,Mac序列)只需首次进入应用时从设备上的接口获取去一次,然后缓存本地;应用内重复使用的数据,只需跑一次平台接口,如果数据不多,也可以缓存本地;页面跳转后当前页面的焦点记忆。。。。。
1.1浏览器存储是以域名(站点)为单位进行数据存储的。
1.2不同站点的页面无法互相读取对方存储的数据
a.获取百度站点本地存储的“op_express_delivery_history”字段的值
b.进到新闻再获取改字段的值,站点已改变,“op_express_delivery_history”该字段的值为null
1.3同一站点的不同页面之间可以互相共享存储数据
a.点击百度首页的任一实时热点新闻,再获取“op_express_delivery_history”的值依然可以获取到
1.4、存储的值仅仅支持字符串类型的数据(虽然草案标准指出既支持对象数组日期等等,但是暂未支持)
2、web存储
2.1 localStorage
a.localStorage存储存储有效期的存储期限是永久性的,如果用户不手动清除浏览器本地缓存,那么localStroage存储的数据将一直保留在用户的设备上
b.localStorage的作用域是文档源(协议,主机名,端口)级别的
c.以名/值对的方式进行存储
d.不同生产商的浏览器存储数据也不共享
e.存储:localStorage.setItem("name","jack")
获取:localStorage.getItem("name")
移除:localStorage.remove("name")
清除:localStorage.clear()
2.2sessionStorage
a.sessionStorage的有效期和存储数据的脚本所在的最顶层窗口或者浏览器标签页是一样的。窗口和标签页被关闭了,通过sessionStorage存储的数据也就被删除了。
b.sessionStorage的作用域不仅受文档源,浏览器厂商,还受顶级窗口限制。
c.存储api同localStorage
3.cookie
3.1、有效期很短暂,只能持续在浏览器的会话之间,用户关闭浏览器,cookie保存的数据就会丢失,或者设置cookie的有效期,等过了这个设置期限,浏览器就会删除cookie保存的数据
3.2、只能存储极少的数据,每次请求一个地址,都会将cookie传到服务器
3.3、保存:
document.cookie="name="+encodeURIComponent("Jack")+“;max-age=120”;
获取:
var value=documnet.cookie;
var list = value.split(";");
遍历每个cookie,记得解码