sessionStorage保存数据以便页面间进行数据传递

  • 来源:新网
  • 更新日期:2018-03-28

摘要:摘要: sessionStorage和localStorage一直都只知道理论知识,也不知道什么时候需要用,怎样用?因为需求,今日终于实践一番,明白了它的用途!

 

源于需求的不断变化,就会想到在一个网站中,多个页面怎样进行数据的传递?比如首页的某个状态或者信息在其他页面做逻辑判断时需要使用到该怎么办?这也就是页面间进行数据传递,很好,sessionStorage和localStorage就是存储数据的,一个是会话存储,一个是本地存储,区别想必也和容易理解。

0fcf8edafdc4e4e60e069a612fec1e8.png

先介绍关系,再上代码。

联系:

(1)localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。

(2)均只能存储字符串类型的对象。

(3)不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。

同源:域名,协议,端口相同。

区别:

sessionStorage:生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

localStorage:生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。

代码:

session操作:

//首页JS部分的session操作: sessionStorage.setItem(\'state\',\'1\'); sessionStorage.getItem(\'state\'); console.log(sessionStorage.getItem(\'state\'));  // 1

//另一页面的session操作 var getState = sessionStorage.getItem(\'state\'); console.log(getState); // 1

local操作:

​//首页JS部分的local操作: localStorage.setItem(\'state\',\'1\'); localStorage.getItem(\'state\'); console.log(localStorage.getItem(\'state\'));  // 1 ​

//另一页面的local操作 var getState = localStorage.getItem(\'state\'); console.log(getState); // 1

很简单,就这样已经实现了存储和传递。在控制台中Application查看,可以发现Session Storage中state在浏览器没有关闭时数据始终存在,关闭之后清空。而Local Storage中state始终存在,直到人为删除数据。