sessionStorage,localStorage,cookie

共同点:都是保存在浏览器端,且同源的。区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。


Web Storage: 实现客户端本地的存储,客服cookie的一些限制,数据量更大。

两种存储类型:
     1.sessionStorage: 存储特定于某个服务器会话的数据,在浏览器关闭之后,数据消失。因此本地运行的文件是不可用的。
     2.localStorage: 数据保存在客户端本地的硬件设备中,一直存在。

相关API:

        1.     length: 返回当前storage中的数目。
        2.     key(n):返回第n个条目
        3.      getItem(key):根据指定的key值获取对应的value值
        4.      setItem(key,value):设置指定key值的内容为value
        5.      removeItem(key);根据指定的key值,键值为key的内容
        6.      clear():删除所有值。firefox中没有实现。



限制:大多数浏览器会对同一个来源的数据存在大小的限制,大部分限制5MB,但是也有一部分限制2.5MB 

例子:实现一个简单的留言板功能,利用localStorage存储,并显示在页面上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>web storage</title>
    <script>
        function saveStorage(id)
        {
            var data = document.getElementById(id).value;
            var time = new Date().getTime();//获取时间戳作为key值
            localStorage.setItem(time,data);//添加一条留言
            alert("提交成功");
            loadStorage("msg");
        }
        function clearStorage(){//清除所有的内容
            localStorage.clear();
            alert("已全部清除");
            loadStorage("msg");
        }
        function loadStorage(id){
            var result = '<table border="1px">';
            for(var i =0;i<localStorage.length;i++){
                var key = localStorage.key(i);
                var value = localStorage.getItem(key);//根据key值 获取对应的留言
                var date = new Date();
                date.setTime(key);
                var datestr = date.toGMTString();
                result+='<tr><td>'+value+'</td><td>' + datestr + '</td></tr>';
            }
            result +='</table>';
            document.getElementById(id).innerHTML = result;
        }
    </script>
</head>
<body>
<header >留言板</header>
<form>
    <textarea id="message" cols="150" rows="30"></textarea><br>
    <input type="button" value="提交" οnclick="saveStorage('message')">
    <input type="button" value="清除" οnclick="clearStorage()">
</form>
<p id="msg"></p>
</body>
</html>

CCF大数据与计算智能大赛-面向电信行业存量用户的智能套餐个性化匹配模型联通赛-复赛第二名-【多分类,embedding】.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值