成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:SessionStorage可以在多個Tab之間共享數據嗎?

開發 前端
最近,我的一個朋友在面試時被一個關于sessionStorage的問題難住了。好吧,我必須承認,我對此并不熟悉。面試題是:sessionStorage可以在多個選項卡之間共享數據嗎?

最近,我的一個朋友在面試時被一個關于sessionStorage的問題難住了。

好吧,我必須承認,我對此并不熟悉。

面試題是:sessionStorage可以在多個選項卡之間共享數據嗎?

具體面試中涉及到的一些問題與面試流程

問題1:“你知道localStorage和sessionStorage有什么區別嗎?”

我的朋友:他感到很高興,因為這是任何一個前端開發工程師都知道的知識。

localStorage的數據是持久化的,只要我們不主動清除它,它就會一直存在。

關閉選項卡/窗口會結束會話并清除 sessionStorage 中的對象。

問題二:同一個網站下localStorage可以共享數據嗎?

我的朋友:“這又是一件簡單的事!數據可以在同一網站下的不同選項卡或窗口之間共享”

// Let's try to set a name in window 1 page 1
localStorage.setItem('name', 'fatfish')
// We try to read the current name in window 2 page 2
localStorage.getItem('name') // fatfish

面試官對我朋友說,你太棒了,我想再問你一個面試題,于是就有了第三個面試題。

問題3:sessionStorage可以在多個選項卡之間共享數據嗎?”

我的朋友:“不,每個窗口或選項卡都有一個單獨的sessionStorage,它們之間沒有數據共享”

面試官:“你真的確定是這樣嗎?”

我的朋友:“呃!我不確定,也許吧!”

也許,我的朋友因為這個問題而錯過了offer,但作為一名開發人員,我們需要不斷提高我們的知識和技能。

什么是會話存儲?

來自 MDN:只讀 sessionStorage 屬性訪問當前源的會話存儲對象。sessionStorage與localStorage類似;不同之處在于,localStorage 中的數據不會過期,而 sessionStorage 中的數據會在頁面會話結束時被清除。

每當文檔加載到瀏覽器的特定選項卡中時,就會創建一個唯一的頁面會話并將其分配給該特定選項卡。該頁面會話僅對特定選項卡有效。

只要選項卡或瀏覽器打開,頁面會話就會持續,并且在頁面重新加載和恢復后仍然存在。

在新選項卡或窗口中打開頁面會創建一個具有頂級瀏覽上下文值的新會話,這與會話 cookie 的工作方式不同。

使用相同的 URL 打開多個選項卡/窗口會為每個選項卡/窗口創建 sessionStorage。

復制選項卡會將選項卡的 sessionStorage 復制到新選項卡中。

請注意第三點!或者我們可以在這里找到答案!

假設我們在https://medium.com/page/1中寫了這樣一段代碼:

btn.addEventListener('click', () => {
  window.sessionStorage.setItem('name', 'fatfish')
  window.open('https://medium.com/page/2')
})

我可以在 https://medium.com/page/2 獲取名稱值嗎?

console.log(window.sessionStorage.getItem('name')) // null or fatfish?

是的,答案就是fatfish。那么,我們確定 sessionStorage 可以在多個選項卡之間共享數據嗎?

最終答案

讓我們嘗試再次繼續執行 https://medium.com/page/1 上的一段代碼。

window.sessionStorage.setItem('name', 'medium')
window.sessionStorage.setItem('age', '1000')

如果sessionStorage可以在不同窗口或選項卡之間共享數據,那么https://medium.com/page/2也可以獲取name和age的最新值

console.log(window.sessionStorage.getItem('name')) // 111
console.log(window.sessionStorage.getItem('age')) // null

所以,我們可以得出結論,sessionStorage不能在多個窗口或選項卡之間共享數據,但是,當通過window.open或鏈接打開新頁面時,新頁面會復制上一個頁面的sessionStorage。

總結

以上就是我今天想與你分享的知識內容,希望對你有所幫助,最終,感謝你的閱讀。


責任編輯:華軒 來源: web前端開發
相關推薦

2025-01-07 12:58:28

2024-07-22 14:09:22

@AsyncJava

2024-09-18 09:02:14

單核服務器線程切換

2023-08-13 16:17:31

2020-03-10 08:01:05

Java堆內存線程共享

2020-03-06 15:36:01

Redis內存宕機

2022-07-26 08:40:42

Java并發工具類

2022-08-02 06:31:32

Java并發工具類

2022-07-12 12:05:22

JavaSemaphore

2021-07-06 07:08:18

管控數據數倉

2022-02-08 08:14:07

Context數據線程

2020-09-26 22:04:32

數據安全傳輸HTTPSHTTP 協議

2023-07-11 08:40:02

IO模型后臺

2022-05-23 08:43:02

BigIntJavaScript內置對象

2022-06-30 08:14:05

Java阻塞隊列

2022-07-11 10:47:46

容器JAVA

2024-09-14 10:50:29

通信代碼函數

2018-10-22 14:28:26

面試官數據公司

2019-06-21 15:20:05

Redis數據結構數據庫

2015-08-13 10:29:12

面試面試官
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩在线一区二区三区 | 国产成人99av超碰超爽 | 国产精品美女一区二区三区 | 久久综合九九 | 日韩和的一区二在线 | 色女人天堂 | 中文字幕在线视频免费视频 | 台湾佬久久 | 91精品入口蜜桃 | 久久久噜噜噜www成人网 | 亚洲国产激情 | 精品自拍视频在线观看 | 91精品91久久久 | 精品无码三级在线观看视频 | 91精品国产欧美一区二区 | 亚洲在线日韩 | 成人在线一区二区 | www.亚洲精品 | 视频在线一区二区 | 视频一区在线 | 成人精品国产 | 国产精品成人国产乱一区 | 武道仙尊动漫在线观看 | 怡红院怡春院一级毛片 | 精品在线一区二区三区 | 国产精品精品久久久 | 秋霞电影一区二区三区 | 日日夜夜视频 | av一级久久 | 国产精品高潮呻吟久久 | 日韩小视频在线 | 欧美中文字幕一区 | 国产日韩欧美一区二区 | 97免费视频在线观看 | 夏同学福利网 | 成人在线视频网站 | 91日韩在线 | 九九热在线免费观看 | 国产午夜精品视频 | 亚洲成人毛片 | 亚洲精品91 |