本地存储是什么意思
本地储存的意思是指H5新增的API,用来在本地存储数据,在不影响服务器性能的情况下来在本地存储大量的数据。断电后数据不会消失,存储到本机。本地存储分为cookie,以及新增的localStorage和sessionStorage。
1、 cookie
存储在本地,容量最大4k,在同源的http请求时携带传递,损耗带宽,可设置访问路径,只有此路径及此路径的子路径才能访问此cookie,在设置的过期时间之前有效。
生命周期为在cookie设置的过期时间之前一直有效,即使窗口或者浏览器关闭;存放数据大小为4K;有存储个数限制(各浏览器不同),一般不超过20个;
与服务器端通信,每次都会携带在HTTP头中,cookie存储数据过多会带来性能问题;
jquery 设置cookie
$.cookie(‘mycookie’,’123′,{expires:7,path:’/’});
jquery 获取cookie
$.cookie(‘mycookie’);
2、 localStorage
存储在本地,容量为5M或者更大,不会在请求时候携带传递,在所有同源窗口中共享,数据一直有效,除非人为删除,可作为长期数据。
生命周期永久,除非用户清除浏览器中的localStorage信息,否则永远存在;
存放数据大小一般为5MB;
仅在浏览器中保存,不参与服务器通信;
//设置:
localStorage.setItem(“dat”, “456”);
localStorage.dat = ‘456’;
//获取:
localStorage.getItem(“dat”);
localStorage.dat
//删除
localStorage.removeItem(“dat”);
3、 sessionStorage
存储在本地,容量为5M或者更大,不会在请求时候携带传递,在同源的当前窗口关闭前有效。
localStorage 和 sessionStorage 合称为Web Storage , Web Storage支持事件通知机制,可以将数据更新的通知监听者,Web Storage的api接口使用更方便。
iPhone的无痕浏览不支持Web Storage,只能用cookie。
仅在当前会话下有效,关闭页面或者浏览器后被清除;存放数据大小一般为5MB;仅在浏览器中保存,不参与服务器通信;可以接受源生接口,亦可以再次封装来对Object和Array有更好的支持。
4、localStorage与sessionStorage区别
我经常用到的存储方式为前两种,因此需要清楚了解它们之间的区别。localStorage与sessionStorage的API调用方法相同;不同浏览器无法共享localStorage或sessionStorage中的信息;相同浏览器的不同页面可以共享相同的localStorage(前提是页面属于相同域名和端口);相同浏览器的不同页面无法共享sessionStorage的信息;
实例
1、ajax数据加载
2、表单验证
3、滑动条
4、自定义滚动条