国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

sessionStorage多Tab標簽頁數據共享問題分析

瀏覽:7日期:2022-06-13 15:33:36
目錄問題描述問題原因sessionStorage根據第二點應該稱為“復制”而不是“共享”問題描述

在 A 頁面設置一些 sessionStorage 數據,然后 a 標簽 _blank 方式打開另一個 tab B 頁面,發現 B 頁面有A 頁面的 sessionStorage 數據。

問題原因

不同 tab 頁面 sessionStorage 數據出現了 “共享”。

sessionStorage

為什么會共享呢?下面看下 sessionStorage 的官方 MDN 介紹:

頁面會話在瀏覽器打開期間一直保持,并且重新加載或恢復頁面仍會保持原來的頁面會話。在新標簽或窗口打開一個頁面時會復制頂級瀏覽會話的上下文作為新會話的上下文,這點和 session cookie 的運行方式不同。打開多個相同的 URL 的 Tabs 頁面,會創建各自的 sessionStorage。關閉對應瀏覽器標簽或窗口,會清除對應的 sessionStorage。存儲在 sessionStorage 中的數據特定于頁面的協議。意思就是:http://example.com 與 https://example.com 的 sessionStorage 相互隔離。被存儲的鍵值對總是以 UTF-16 DOMString 的格式所存儲,其使用兩個字節來表示一個字符。對于對象、整數 key 值會自動轉換成字符串形式。根據第二點

簡單嘗試后發現

通過新建標簽頁打開相同的頁面(屬于第三條)創建獨立 sessionStorage。通過 window.open 打開新標簽頁,共享了原 tab 頁中的 sessionStorage。通過 a 標簽 _blank 方式打開新 tab 頁,Chrome 86 瀏覽器共享了 sessionStorage,Chrome 113 和 Firefox 瀏覽器并沒有共享。

所以對于 a 標簽打開的頁面,是否“共享”sessionStorage 屬于瀏覽器兼容性問題。

在 Chrome 89 版本前,a 標簽跳轉會共享 sessionStorage。而在 2021年 3月 Chrome 89 版本后,通過 a 標簽 target="_blank" 跳轉到新頁面時 sessionStorage 就會丟失。

應該稱為“復制”而不是“共享”

在 A 頁面設置一些 sessionStorage 數據,然后 a 標簽 _blank 方式打開另一個 tab B 頁面,發現 B 頁面有A 頁面的 sessionStorage 數據。此時兩個頁面的sessionStorage相互獨立,修改不會影響對方,所以稱為復制更為準確。

以上就是sessionStorage 多 Tab 標簽頁數據“共享”的詳細內容,更多關于sessionStorage 多 Tab 標簽頁數據“共享”的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
主站蜘蛛池模板: 巩留县| 遵义县| 许昌县| 常山县| 威远县| 微山县| 沙田区| 兴宁市| 雷山县| 墨玉县| 潼关县| 临西县| 双江| 当雄县| 襄城县| 长海县| 达尔| 乐业县| 额尔古纳市| 清涧县| 永安市| 泽库县| 吴桥县| 阿克| 铜陵市| 惠东县| 成安县| 瓦房店市| 荣成市| 莱西市| 封丘县| 潞西市| 曲靖市| 辰溪县| 剑阁县| 绍兴市| 平定县| 扶绥县| 张家港市| 公安县| 五河县|