久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

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

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

瀏覽:4日期: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
主站蜘蛛池模板: 福海县| 广元市| 四平市| 五原县| 温宿县| 浦东新区| 建阳市| 湖口县| 葫芦岛市| 新巴尔虎左旗| 尚义县| 开原市| 南华县| 石城县| 孟村| 临沂市| 辽宁省| 宾阳县| 山阴县| 泸溪县| 宁武县| 遂溪县| 曲阳县| 信阳市| 阳高县| 武义县| 望城县| 土默特右旗| 江达县| 望都县| 静海县| 扶风县| 德令哈市| 西青区| 尼玛县| 浦北县| 嘉兴市| 永年县| 驻马店市| 白城市| 金昌市|