cookies ,localstorage和sessionstorage对比

题目点评

这是一种对比性比较强的问题,可以先说他们的相同点,然后就是要详细阐述他们的不同点,而不同点不要刻意去对比,只要说出各自的特点,自然他们的不同点就出来了。
解决方法
相同点:都存储在客户端
不同点:

1.存储大小
  • cookie数据大小不能超过4k。
  • sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
2.有效时间
  • localStorage    存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
  • sessionStorage  数据在当前浏览器窗口关闭后自动删除。
  • cookie          设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
3. 数据与服务器之间的交互方式
  • cookie的数据会自动的传递到服务器,服务器端也可以写cookie到客户端
  • sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。

----------------------------------------------------------------------------------------------------------------------------------------

额外拓展【加分项】:Cookie的操作(有点小难度)防止面试官细问cookie的操作。

设置Cookie 

cookie的几个要素

cookie的内容:采用 key=value;key=value……存储,参数名自定义

cookie的过期时间:使用参数expires

cookie的路径:使用参数path,"/"表示这个网站的页面,不推荐!容易产生冲突

注意:形如“/pro/index.html”路径,在google浏览器正常,在IE浏览器得不到值 

cookie的表示方式示例

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var name = "jack";  
  2. var pwd = "123";  
  3. var now = new Date();  
  4. now.setTime(now.getTime() +1 * 24 * 60 * 60 * 1000);//转毫秒  
  5. var path = "/";//可以是具体的网页  
  6. document.cookie = "name=" + name + ";expires=" + now.toUTCString() + ";path=" + path;//姓名  
  7. document.cookie= "pwd=" + pwd + ";expires=" + now.toUTCString()+ ";path=" + path; //密码  

读取cookie

获取cookie内容

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var data=document.cookie;//获取对应页面的cookie  

解析cookie

方式1截取字符串

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. function getKey(key) {  
  2.     var data = document.cookie;  
  3.     var findStr = key + "=";  
  4.     //找到key的位置  
  5.     var index = data.indexOf(findStr);  
  6.     if (index == -1)  
  7.         return null;  
  8.     var subStr = data.substring(index +findStr.length);  
  9.     var lastIndex = subStr.indexOf(";");  
  10.     if (lastIndex == -1) {  
  11.         return subStr;  
  12.  } else {  
  13.         return subStr.substring(0,lastIndex);  
  14.  }  
  15. }  

方式2:使用正则表达式+JSON

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. function getKey(key) {  
  2.     return JSON.parse("{\"" +document.cookie.replace(/;\s+/gim, "\",\"").replace(/=/gim, "\":\"") + "\"}")[key];  
  3. }  

清除cookie

[javascript]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. var name = null;  
  2. var pwd = null;  
  3. var now = new Date();  
  4. var path = "/";//可以是具体的网页  
  5. document.cookie= "name=" + name + ";expires=" + now.toUTCString()+ ";path=" + path;//姓名  
  6. document.cookie = "pwd=" + pwd + ";expires=" + now.toUTCString()+ ";path=" + path; //密码  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CookieslocalStoragesessionStorage是用于在Web浏览器中存储数据的机制,但它们之间有一些重要的区别。 1. 数据存储方式和容量: - Cookies是由浏览器自动管理的小型文本文件,可以存储少量数据(通常不超过4KB)。它们在每个HTTP请求中都会被发送到服务器,并且可以设置过期时间。 - localStoragesessionStorage是HTML5提供的Web Storage API。它们可以存储更大的数据量(通常最大可达5MB),并且只在特定的域名下可用。它们在浏览器中永久保存,除非通过JavaScript代码手动删除。 2. 数据生命周期: - Cookies的生命周期由设置的过期时间决定,可以长时间保存在浏览器中,即使关闭浏览器也不会被删除。 - localStorage的数据在浏览器关闭后仍然存在,因此它们具有持久性。 - sessionStorage的数据仅在当前会话中存在。当浏览器窗口或标签页关闭时,sessionStorage中的数据将被清除。 3. 数据访问权限: - Cookies可以通过设置域名和路径来限制访问权限。它们可以在同一个域名下的不同页面之间共享,并且在浏览器和服务器之间的每次请求中都会被发送。 - localStoragesessionStorage仅限于在创建它们的网页中访问。它们不会被发送到服务器,因此只能在客户端使用和修改。 综上所述,Cookies适合存储需要在客户端和服务器之间共享的小型数据。localStorage适合存储需要在浏览器关闭后仍然存在的大量数据。sessionStorage适合存储在单个会话期间需要临时保留的数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值