-
2020-10-23 10:50:33
- 假设在A页面中有sessionStorage
- B页面必须是在A页面中使用
window.open(url)
方法打开,才能在B页面中使用A页面的sessionStorage
注:AB页面是同一连接的不同tab
更多相关内容 -
sessionStorage多标签页共享
2019-01-18 11:35:39sessionStorage多标签页共享 sessionStorage在不同页面上不是同步共享的,但是我们有时候会将token或者一些登录凭证记录在token里(你肯定要问为什么后端不把token直接写到cookie里,因为他懒…),所以这里就写一下...sessionStorage多标签页共享
sessionStorage在不同页面上不是同步共享的,但是我们有时候会将token或者一些登录凭证记录在token里(你肯定要问为什么后端不把token直接写到cookie里,因为他懒…),所以这里就写一下怎么将不同页面的sessionStorage同步更新
sessionStorage
和localStorage
区别localStorage
的生命周期是永久的,意思就是如果不主动清除,存储的数据将一直被保存。而sessionStorage
顾名思义是针对一个session的数据存储,生命周期为当前窗口,一旦窗口关闭,那么存储的数据将被清空。最后还有一个很主要的区别同一浏览器的相同域名和端口的不同页面间可以共享相同的localStorage
,但是不同页面间无法共享sessionStorage
的信息。解决
所以我们可以借用
localStorage
的改变来主动修改sessionStorage
,这里要用到一个监听事件storage
,用于监听localStorage
window.addEventListener("storage", function(event){ //event.key确认修改的locaStorage变化key,event.newValue是修改后的值 if(event.key == "token"){ sessionStorage.setItem('token',event.newValue) } });
所以在登陆时直接
localStorage.setItem('token','xxxxx')
,这样自动设置在了sessionStorage
中,需要用到的时候直接sessionStorage.getItem('token')
,其实直接使用localStorage
来记录登录状态什么的也可以,但是为了关闭页面直接清楚token,所以就在写sessionStorage
中了END~
-
解决sessionStorage页面共享问题
2022-07-14 17:22:44vue项目中实现sessionStorage在不同页面共享——解决浏览器复制网址在新的tag里能正常跳转的问题
一、问题描述
在新的页面打开一个tag粘贴上一个页面的地址时不能正常跳转,直接跳转到了login页面。
二、原因分析
百度发现是因为sessionStorage和localStorage存储周期不同:
- sesssionStorage:关闭当前浏览器,数据就随之消失
- localStorage:如果不手动清除,数据会一直存在
此处参考官方文档JavaScript 存储对象 | 菜鸟教程
和以下博客localstorage和sessionstorage的区别 - 付杰博客、sessionStorage和localStorage有什么区别_火兰的博客-CSDN博客_localstorage和sessionstorage的区别
三、解决办法
当我们作比较正规或者较大的项目时,最好不要用localStorage,毕竟通过某些方法是可以将存放的token转化为字符串信息的。那就需要解决sessionStorage不能在页面之间共享信息的问题了,原理主要参考以下文章:
html5——sessionStorage不能跨标签页解决方案-奇奇笔记
思路:
- 当sessionStorage没有信息时,使用localStorage存储
- 触发storage事件,并设置监听:localStorage存储当前sessionStorage的token
- localStorage保存的token变化后,新页面sessionStorage保存新的信息
实现:
实现过程中会发现一个问题:监听storage事件未执行完就已经判断了登录信息。于是便想到是不是异步的问题,那么就要让这个函数完成之后再进行login。
此处参考:
sessionStorage不能跨标签页解决方案--vue项目_拷贝程序猿的博客-CSDN博客_sessionstorage不同标签页
sessionStorage共享(监听storage事件)_MINO吖的博客-CSDN博客_sessionstorage事件
我的实现方法:
在需要判断login的地方调用
ps:
- localStorage.setItem('getSessionStorage', Date.now())触发的不是新页面而是旧页面的storage(localStorage存的数据只要发生变化就会触发storage,此处由undefined变为date)
- 个人想法,应该有不对或者不完善的地方,仅供参考,欢迎讨论
-
localStorage/sessionStorage/Cookies不同页面值共享情况
2021-01-25 15:46:282、相同浏览器下,并且是同源窗口(协议、域名、端口一致),不同页面可以共享localStorage,Cookies值,通过跳转的页面可以共享sessionStorage值。 3、关于sessionStorage,通常说sessionStorage关闭页面即消失,...1、不同浏览器无法共享localStorage和sessionStorage的值。
2、相同浏览器下,并且是同源窗口(协议、域名、端口一致),不同页面可以共享localStorage,Cookies值,通过跳转的页面可以共享sessionStorage值。
3、关于sessionStorage,通常说sessionStorage关闭页面即消失,但是通过跳转的页面可以共享sessionStorage值,跳转有多种方式:
(1) <a href="同源页面" target="_self">跳转</a> //原窗口
(2) <a href="同源页面" target="_blank">跳转</a> //新开窗口
(3) window.location.href = '同源页面' //原窗口
(4) window.location.replace('同源页面') //原窗口
(5) window.open('同源页面') //新开窗口
(6) this.$router.push({path: '同源页面'}) //通过路由跳转共享值
app端通过原生方法更换webView实现跳转,这种方式不能共享sessionStorage,原窗口跳转的页面传递sessionStorage,改变存储值会相互影响,新开窗口跳转方式传递sessionStorage,改变存储值互不影响
-
vue实践-多标签页共享sessionstorage
2020-05-11 11:48:55经过一番努力,发现是因为前端的自校验用户信息存储在sessionstorage中,而sessionstorage是针对单标签页的,因此就有了这篇文章,共享sessionstorage。 看了很多博客,有详细的方法的,但因为是小白入门,因此也不... -
同一网站下sessionStorage共享问题
2021-03-28 17:43:40最初的时候误认为只要是同一网站下所有页面共享sessionStorage,后来发现事情不是这样的。页面是否共享sesstionStorage与打开方式有关系:通过点击链接或window.open打开的新标签页与当前页面是同一个session;其它... -
js中新标签页sessionStorage无法共享问题
2021-04-15 22:23:21(function() { const AuthCode = () => sessionStorage.getItem('Auth-Code'); const secretKey = () =&... // 这个调用能触发目标事件,从而达到共享数据的目的 localStorage.setItem('getSes... -
localStorage、sessionStorage同一网站下共享问题
2021-10-13 15:29:13不是所有的sessionStorage都能共享。 1. 第一种情况 浏览器中打开A页面,再通过A页面打开新的标签页B页面,此时A、B两个页面的sessionStorage是“共享”的。这里的共享指的是B页面会把A页面的的 sessionStorage 拷贝... -
不同tab页sessionStorage共享情况
2022-05-20 23:04:43不同tab页sessionStorage共享情况 判断不同tab是否属于同个会话,看tab的打开方式: 手动新开一个标签页,会创建新的 session 通过点击链接,会创建新的 session 用 window.open 打开的新标签跟原标签页是属于同一... -
关于谷歌Chrome浏览器sessionStorage的跨tab页共享问题
2021-04-02 17:13:30Chrome浏览器跨tab页sessionStorage共享问题 问题现象 在当前页面下开启一个新的同源tab页sessionStorage中的内容未有效共享到新开tab页中,导致新开tab页sessionStorage为空。 解决办法 首先抛出一个十分简单的解决... -
js 处理sessionStorage无法在多个标签栏共享、同步的问题
2021-04-07 14:38:42同一浏览器的相同域名和端口的不同页面间可以共享相同的localStorage,但是不同页面间无法共享sessionStorage的信息。两个标签栏localStorage如果一个页面里面修改了,那么另外一个页面的localStorage也会跟着变化。... -
Chrome89针对sessionStorage的更新导致数据共享问题
2021-04-09 23:10:06最近将chrome更新到最新的版本...在A页面中我们将共享的数据保存到sessionStorage中,并新建超链接元素并触发其单击事件。 sessionStorage.setItem('parameter', JSON.stringify(parameter)); var link = angular.eleme -
在App hybrid多webView窗口中实现 sessionStorage
2021-04-13 17:36:44需求背景 业务中需要根据定位获取周边的位置点,定位功能包括自动获取定位和...hybrid开发中会打开多个webView 页面,页面A设置数据,页面B中要得知数据,如果使用redux状态管理器、或浏览器sessionStorage在当前webVi -
sessionStorage在不同页签中的数据是否共享问题及解决思路
2022-08-04 14:50:06sessionStorage在不同页签中的数据共享问题 -
sessionStorage 不再多标签共享 Chrome 89
2022-02-11 20:02:13sessionStorage 不再多标签共享 Chrome !!! Remove prefixed events for 移除前缀事件 Stop cloning sessionStorage for windows opened with noopener 非opener打开的窗口sessionstorage 不会复用 为了和HTML... -
sessionStorage可共享情况和localStorage
2018-11-15 11:55:001、不同浏览器无法共享localStorage和sessionStorage的值。 2、相同浏览器下,并且是同源...3、关于sessionStorage,通常说sessionStorage关闭页面即消失,但是通过跳转的页面可以共享sessionStorage值,跳转有多... -
sessionStorage共享(监听storage事件)
2021-06-01 18:29:44前言 sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage ...**在新标签或窗口打开一个页面时会在顶级浏览上下文中初始化一个新的会话,**这点和 session cookies 的运行方式不同。 ... -
多页面共用sessionStorage的实现
2018-07-01 20:57:47sessionStorage的局限: sessionStorage是页面级别的,仅在一个标签页生效,如果同一个浏览器同时打开多个标签页,且都访问同一个域名,... 如果想突破这种局限,实现多tab页共享存取数据同时又有sess... -
cookie,sessionStorage,localStorage与浏览器新开窗口window.open的关系
2021-03-08 20:12:54window.open是用JavaScript打开一个新的浏览器的窗口的函数,而cookie,sessionStorage,localStorage是三种常用的浏览器存储数据的方式,在开发时经常会用到。这里不谈cookie,sessionStorage,localStorage三种的... -
sessionStorage打开新的标签页数据丢失, 共享数据
2020-08-17 22:10:40后来启用sessionStorage,可以登录多个账户了,页面一关存储的数值也会自动被清掉,不存在安全问题;但来了新的问题,登录后,父页面跳转打开的新页面,两个页面之间的值无法共享了。 后来想了一下,可以利用window.... -
关于sessionStorage的一个误区,sessionStorage 的数据会在同一网站的多个标签页之间共享吗?这取决于标签...
2020-08-19 11:12:23我所以为的sessionStorage的生命周期是这样的:在 sessionStorage 中存储的数据会在当前浏览器的同一网站的多个标签页中共享,并在此网站的最后一个标签页被关闭后清除。注意:这是错误的。 不同被打开的方式:标签... -
sessionStorage
2021-11-05 12:33:23sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。 只在本地存储。seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除... -
利用localStorage事件来跨标签页共享sessionStorage
2017-08-03 16:08:00//干货 利用localStorage事件来跨标签页共享sessionStorage //因为cookie保存字节数量有限,很多童鞋考虑用html5 storage来保存临时数据,Sessionstorage就比较适合来保存临时数据了。 //但有个问题呵:... -
浏览器标签页之间共享sessionStorage
2017-03-10 11:32:48项目使用了 sessionStorage,后来才发现:浏览器标签页之间不能共享sessionStorage。看看kazaff的解决方案: 译-在多个标签页之间共享sessionStorage -
SessionStorage和LocalStorage
2022-04-04 21:44:37它分为两个部分:SessionStorage和localStorage。 数据存储在用户浏览器中; 设置、读取方便、甚至页面刷新不丢失数据; 容量较大,约5M。 只能存储字符串,可以将对象JSON.stringify()编码后存储。 二、... -
Localstorage、sessionStorage、cookie 的区别
2022-06-20 14:20:34器间来回传递,而 sessionStorage 和 localStorage 不会自动把数据发送给服务器,仅在本 地保存。cookie 数据还有路径(path)的概念,可以限制 cookie 只属于某个路径下 2、存储大小限制也不同,cookie 数据不能... -
sessionStorage、localStorage
2022-04-25 13:48:56如何用sessionStorage保存对象和数组 https://blog.csdn.net/qq_30868289/article/details/79582280 一、sessionStorage、localStorage详解 webstorage webstorage是本地存储,存储在客户端,包括localStorage和... -
前端本地存储sessionStorage和localStorage
2022-04-28 10:55:172.在同一个窗口下数据可以共享 3.以键值对的形式存储 用法: 存储数据 sessionStorage.setItem(key, val) 获取数据 sessionStorage.getItem(key) 删除数据 sessionStorage.removeItem(key) 清楚所有数据 ... -
sessionStorage 、localStorage
2022-03-03 14:29:132.sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通 过sessionStorage存储的数据也就被清空了。 3.不同的浏览器无法共享localStorage或sessionStorage中的信息...
-
pev:Javascript 的普遍事件发射器PEV - Javascript 的普遍... 因为在其他<em>窗口</em>中添加了处理程序,其中有不同的对象处理与本地存储的通信,默认情况下所有 Pervasive Event Emitter
-
awesome-namestorage:nameStorage 是类似 sessionStroage 的键值对数据存储工具,但是数据的生存周期为<em>窗口</em>会话的生存周期,同一个<em>窗口</em>可以通过 nameStorage <em>共享</em>数据。 出生证明 window.name 非常有用,但不可滥用
-
安卓java读取网页源码-interview:面试安卓java读取网页源码 大而全的面试题 Doctype作用?标准模式与兼容模式各有什么区别? <!...<...告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不
-
程序员面试刷题的书哪个好-html:前端开发工程师面试题程序员面试刷题的书哪个好 ... 1、Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? (1)、 声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型 规范来解
-
前端开发大厂面试题库.zip前端面试题,包含原生JS、react、vue等。里面包含了阿里、百度外卖、美团等大厂的经典面试题,整理了BAT等各大互联网公司最新面试题。