JavaScript本地储存:localStorage、sessionStorage、cookie的使用

JavaScript本地储存:localStorage、sessionStorage、cookie的使用

javaScript有三种数据存储方式,分别是:

1. sessionStorage

2. localStorage

3. cookier**

1.sessionStorage

sessionStorage 仅在当前会话下有效,关闭页面或浏览器后被清除;
setItem(key,value) 设置数据
getItem(key) 获取数据
removeItem(key) 移除数据
clear() 清除所有值

<body>
    <input type="text">
    <button class="set">存储数据</button>
    <button class="get">获取数据</button>
    <button class="remove">删除数据</button>
    <button class="del">清空所有数据</button>
    <script>
        console.log(localStorage.getItem('username'));

        var ipt = document.querySelector('input');
        var set = document.querySelector('.set');
        var get = document.querySelector('.get');
        var remove = document.querySelector('.remove');
        var del = document.querySelector('.del');
        set.addEventListener('click', function() {
            // 当我们点击了之后,就可以把表单里面的值存储起来
            var val = ipt.value;
            sessionStorage.setItem('uname', val);
            sessionStorage.setItem('pwd', val);
        });
        get.addEventListener('click', function() {
            // 当我们点击了之后,就可以把表单里面的值获取过来
            console.log(sessionStorage.getItem('uname'));

        });
        remove.addEventListener('click', function() {
            // 
            sessionStorage.removeItem('uname');

        });
        del.addEventListener('click', function() {
            // 当我们点击了之后,清除所有的
            sessionStorage.clear();

        });
    </script>
</body>

2.localStorage
localStorage是HTML5标准中新加入的技术用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去删除; localStorage和sessionStorage最大一般为5MB,仅在客户端(即浏览器)中保存,不参与和服务器的通信;

setItem(key,value) 设置数据
getItem(key) 获取数据
removeItem(key) 移除数据
clear() 清除所有值

<body>
    <input type="text">
    <button class="set">存储数据</button>
    <button class="get">获取数据</button>
    <button class="remove">删除数据</button>
    <button class="del">清空所有数据</button>
    <script>
        var ipt = document.querySelector('input');
        var set = document.querySelector('.set');
        var get = document.querySelector('.get');
        var remove = document.querySelector('.remove');
        var del = document.querySelector('.del');
        set.addEventListener('click', function() {
            var val = ipt.value;
            localStorage.setItem('username', val);
        })
        get.addEventListener('click', function() {
            console.log(localStorage.getItem('username'));

        })
        remove.addEventListener('click', function() {
            localStorage.removeItem('username');

        })
        del.addEventListener('click', function() {
            localStorage.clear();

        })
    </script>
</body>

3.cookier

简介
Cookie是一些数据,存储于你电脑上的文本文件中,用于存储web页面的用户信息
Cookie数据是以键值对的形式存在的,每个键值对都有过期时间。如果不设置时间,浏览器关闭,cookie就会消失,当然用户也可以手动清除cookie
Cookie每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题
Cookie内存大小受限,一般每个域名下是4K左右,每个域名大概能存储50个键值对
基本操作
通过访问document.cookie可以对cookie进行创建,修改与获取。
默认情况下,cookie在浏览器关闭时删除,你还可以为cookie的某个键值对添加一个过期时间
如果设置新的cookie时,某个key已经存在,则会更新这个key对应的值,否则他们会同时存在cookie中

        //设置cookie 
        document.cookie = "username=orochiz";
        document.cookie = "age=20";
        //读取cookie 
        var msg = document.cookie
        console.log(msg) //username=orochiz;age=20 

        //添加过期时间(单位:天) 
        var date = new Date();
        //当前时间2019-9-25 
        var days = 3 //3天
        date.setDate(d.getDate() + days)
        document.cookie = "username=orochiz;" + "expires=" + date;
        //删除cookie(给某个键值对设置过期的时间) 
        date.setDate(date.getDate() - 1)
        console.log(document.cookie)
<script>
			/*
			  设置 cookie 
			  直接写 document.cookie = "key=value"设置一条cookie
			  一次只能设置一条 cookie 
			  默认的过期时间 是 session 
			  如果需要设置过期时间,直接在本条 cookie 后面添加一个 expires 
			  过期时间的值 是一个时间对象
			  如果传递当前时间,就是会话级别 
			  如果传递的是未来时间,会在将来的某一个时间过期
			*/
		   // document.cookie = "a=100";
		   // console.log(document.cookie)
		   // 时间对象
		   var time = new Date();
		   console.log(time,'000')
		   // 设置 过期时间
		   //document.cookie = "a=100;expires="+time;
		   console.log(time.getTime(),'70年到现在的时间戳')
		   // 匹配 cookie 的时间
		   console.log(time.getTime()-1000*60*60*8);
		   time.setTime(time.getTime()-1000*60*60*8+1000*5);
		   console.log(time,'设置后的时间')
		   document.cookie = "a=100;expires="+time;
		</script>

总结

**相同点:**都保存在浏览器端,可以下图位置查看储存的信息

不同点:

①传递方式不同

cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。

sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

②数据大小不同

cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。

sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。

③数据有效期不同

sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;

localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;

cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

④作用域不同

sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;

localStorage在所有同源窗口中都是共享的;

cookie也是在所有同源窗口中都是共享的。

WebStorage支持事件通知机制,可以将数据更新的通知发送给监听者。

WebStorage的api接口使用更方便。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
localStoragesessionStoragecookie都是在Web开发中用于在浏览器端存储数据的机制。 localStorage是一种持久化存储机制,数据会一直保存在浏览器中,直到被显式清除或通过代码删除。存储在localStorage中的数据可以跨会话和页面保持不变,即使浏览器关闭和重新打开也不会丢失。localStorage只能通过JavaScript访问,它提供了setItem、getItem和removeItem等方法来操作存储的数据。 sessionStorage也是一种存储数据的机制,但与localStorage不同的是,存储在sessionStorage中的数据仅在当前会话(当前标签页或窗口)中有效。当会话结束(标签页或窗口关闭)时,存储在sessionStorage中的数据就会被清除。sessionStorage使用方法和localStorage相似,也是通过setItem、getItem和removeItem等方法来操作数据。 cookie是一种在浏览器和服务器之间传递的小型文本文件,用于存储会话相关的信息。与localStoragesessionStorage不同,cookie的数据会随着每个HTTP请求发送到服务器端,并且可以设置过期时间。由于cookie会在每个请求中传输,所以存储在cookie中的数据大小有限制(通常为几KB)。可以使用JavaScript或服务器端语言来设置和读取cookie。 总结:localStoragesessionStorage主要用于在浏览器端持久化存储数据,而cookie主要用于在浏览器和服务器之间传递会话相关的信息。具体使用哪种机制取决于实际需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值