您的位置:首页 > Web前端 > HTML5

html5本地存储localStorage与sessionStorage详解

2016-01-30 19:25 726 查看
公司战略层面全面拥抱html5,为响应公司号召,我开始了html5之学习之旅,虽然我是java后台开发。在这里把今天用到的localStorage与sessionStorage记录下来备忘。

localStorage与sessionStorage是html5本地化存储的新特性,概念上类似于以往我们时常使用的cookie,即将用户数据持久化到本地的技术。而localStorage与sessionStorage作为新时代的产物,相比旧时代的cookie有其巨大的优越性。优越性有三:
其一在能存储的数据量,cookie最大能存储4kb的数据,而localStorage与sessionStorage最大能存储5Mb,目前各大浏览器支持的标准都是如此;其二在功能上,cookie只能存储String类型的数据,以往要将用户数据存储在本地,需要将数据拼接成字符串,再存进cookie,取数据的时候同样麻烦,先将整个cookie对象拿到(String对象),再按拼接的规则拆分,再拿需要的数据,存取都很麻烦!localStorage与sessionStorage不仅支持传统的String类型,还可以将json对象存储进去,存取数据都方便不少,json的优越性就不赘述,localStorage与sessionStorage无疑更现代化;其三在语义层面上,localStorage与sessionStorage语法更优雅、简便。


接下来来看如何祭出localStorage
:var storage = window.localStorage;如此便可以使用它了。存取String类型示例:

存值:storage.user="李秀才"; 取值:var user=storage["user"];

setItem()和getItem()方式存取:storage.setItem("user","李秀才"); storage.getItem("user");

存取json数据示例:var userInfo={user:"151","age":23,"sex":"男","phone":15411111321,"address":"长安城"}; storage.setItem("userInfo",JSON.stringify(userInfo); userInfo = JSON.parse(storage.getItem("userInfo"));
如果是浏览器版本较低,不支持JSON对象,譬如IE6、IE7、IE8,可引入json2.js文件解决。此文件我已上传到我的资源。

清空:用clear()方法。

删除某个元素:用removeItem();方法:

sessionStorage用法和localStorage完全一致,差别只在有效期

sessionStorage在用户结束会话(即关闭浏览器或退出账户时失效);localStorage无失效期,用户在清理浏览器缓存的时候会被清除。

项目中应用

var ipaddress=ip;
var serveport=port;
var serveAddress='http://'+ipaddress+':'+serveport+'/api/user/login.shtml';
      $.ajax({
      url:serveAddress,
       async : true,
       cache : false,
       type:"post",
       dataType:"json",
      data:{"phone":phone,"password":password},
            success:function(json){
               if(json.code==1){
                    var storage = window.localStorage;
                    var user=userKey;
                    storage.setItem(user,JSON.stringify(json.data));
                    $("#r_top").css("display", "none");
                    $("#login_show").css("display", "block");
                    if ($("#loginPanel").css("display") == "block") {
                     $("#loginPanel").css("display", "none");
                   }
               }else if(json.code==0){
                     swal("提示!", json.msg, "error");
               }
            }        
        });
     }
function exit(){
	sessionStorage.clear();
	location.href="header.html";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: