js学习之存储

Posted zjz666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js学习之存储相关的知识,希望对你有一定的参考价值。

一、Cookie和Session的区别

 

1、cookie数据存放在客户的浏览器上,session数据放在服务器上(一般以内存、数据库、文件形式)。
2、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用Cookie;
3、单个cookie保存的数据不能超过4K,Session没有大小限制;
总结:Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在内存,集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。




二、cookie 、localStorage 、sessionStorage 的区别?
 

 

1、cookie
数据的生命期: 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效
存放数据大小: 4K左右
与服务器端通信:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题易用性
易用性:需要程序员自己封装,源生的Cookie接口不友好



2、localStorage 数据的生命期:除非被清除,否则永久保存
sessionStorage 数据的生命期:仅在当前会话下有效,关闭页面或浏览器后被清除

 

存放数据大小: 一般为5MB
与服务器端通信:仅在客户端(即浏览器)中保存,不参与和服务器的通信
易用性:源生接口可以接受,亦可再次封装来对Object和Array有更好的支持



setItem存储value
sessionStorage.setItem("key", "value"): localStorage.setItem("site", "js8.in");

 

getItem获取value
var value = sessionStorage.getItem("key"): var site = localStorage.getItem("site");

 

removeItem删除key 用途:删除指定key本地存储的值
sessionStorage.removeItem("key"): localStorage.removeItem("site");

 

clear清除所有的key/value 用途:清除所有的key/value
sessionStorage.clear(): localStorage.clear();

 

localStorage和sessionStorage的key和length属性实现遍历 sessionStorage和localStorage提供的key()和length可以方便的实现存储的数据遍历,例如下面的代码:
var storage = window.localStorage;
for(var i=0, len=storage.length; i<len;i++)
  var key = storage.key(i);
  var value = storage.getItem(key);
  console.log(key + "=" + value);

 

3、作用域不同
sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
localStorage 在所有同源窗口中都是共享的;
cookie也是在所有同源窗口中都是共享的。
 

 

以上是关于js学习之存储的主要内容,如果未能解决你的问题,请参考以下文章

node.js学习之swig

vue.js学习之 跨域请求代理与axios传参

node.js学习之react,redux,react-redux

js学习之——数据类型

学习 | less学习之入门

js学习之——如何编写高性能的js