cookie,localStorage,sessionStorage的区别

cookie,localStorage,sessionStorage的区别

以上是目前的三种浏览器的本地数据存储方式,他们都有一个共同的特点,就是安全性低,所有的信息都会在浏览器中显示出来,所以用户相关的敏感信息千万不要保存在其中。以防止XSS注入。

cookie,cookie可存储的数据量很小,大概就40Kb左右,常用来做“记住密码”功能,在localStorage出来之前也用来做电商网站的购物车功能。cookie使用起来比较麻烦,需要程序员自己封装方法。

		var oUserName = document.querySelector(".username");
        var oPassWord = document.querySelector(".password");
        var oForm = document.querySelector("form");
        var oGet = document.querySelector(".get");
        var oRemove = document.querySelector(".remove");

        //设置cookie
        oForm.onsubmit = function () {
            setCookie(oPassWord.name, oPassWord.value, 7);
            return false;
        }
        // 删除cookie
        oRemove.onclick = function () {
            removeCookie(oPassWord.name);
        }

        //设置cookie
        function setCookie(name, value, time) {
            var newDate = new Date();
            newDate.setDate(newDate.getDate() + time);
            document.cookie = `${name}=${value};expires=${time==null?"":newDate}`;
        }
        //获取cookie
        function getCookie(name) {
            var allCookie = document.cookie;
            var nameIndex = allCookie.search(`${name}=`);
            var valueIndex = 0;
            // 判断当前cookie是否为最后一个,最后一个无“;”
            allCookie.indexOf(";", nameIndex) > 0 ? valueIndex = allCookie.indexOf(";", nameIndex) : valueIndex = allCookie.length;
            return allCookie.slice(nameIndex + (`${name}=`.length), valueIndex);
        }
        // 删除cookia
        function removeCookie(name) {
            setCookie(name, "123", -1);
        }

localStorage,这是html5中提出的一个概念,他的出现一定程度上替代了一部分cookie的功能,如上面提到的购物车。localStorage相比较cookie容量要大很多(5M),常用来做需要长期保存的数据,因为他默认不支持设置过期时间。localStorage有自己的接口,也自行二次封装。
localStorage.setItem()/localStorage.getItem()/localStorage.removeItem()

sessionStorage的容量与localStorage差不多,了解过后端语言的可能知道session,经常拿来做用户的身份验证,当用户退出后session清除。这也一定程度上揭露了session的概念,英语中session是会话的意思,而在前端一个会话就是一个页面开始到结束,也就是页面的卸载,当页面发生跳转,退出等都表示一个页面被卸载,此时sessionStorage中的数据就会被删除。所以sessionStorage用来保存临时数据。他的接口使用方法与localStorage基本一致
sessionStorage.setItem()/sessionStorage.getItem()/sessionStorage.removeItem()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值