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

面試官:SessionStorage可以在多個Tab之間共享數(shù)據(jù)嗎?

開發(fā) 前端
最近,我的一個朋友在面試時(shí)被一個關(guān)于sessionStorage的問題難住了。好吧,我必須承認(rèn),我對此并不熟悉。面試題是:sessionStorage可以在多個選項(xiàng)卡之間共享數(shù)據(jù)嗎?

最近,我的一個朋友在面試時(shí)被一個關(guān)于sessionStorage的問題難住了。

好吧,我必須承認(rèn),我對此并不熟悉。

面試題是:sessionStorage可以在多個選項(xiàng)卡之間共享數(shù)據(jù)嗎?

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

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

我的朋友:他感到很高興,因?yàn)檫@是任何一個前端開發(fā)工程師都知道的知識。

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

關(guān)閉選項(xiàng)卡/窗口會結(jié)束會話并清除 sessionStorage 中的對象。

問題二:同一個網(wǎng)站下localStorage可以共享數(shù)據(jù)嗎?

我的朋友:“這又是一件簡單的事!數(shù)據(jù)可以在同一網(wǎng)站下的不同選項(xiàng)卡或窗口之間共享”

// 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可以在多個選項(xiàng)卡之間共享數(shù)據(jù)嗎?”

我的朋友:“不,每個窗口或選項(xiàng)卡都有一個單獨(dú)的sessionStorage,它們之間沒有數(shù)據(jù)共享”

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

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

也許,我的朋友因?yàn)檫@個問題而錯過了offer,但作為一名開發(fā)人員,我們需要不斷提高我們的知識和技能。

什么是會話存儲?

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

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

只要選項(xiàng)卡或?yàn)g覽器打開,頁面會話就會持續(xù),并且在頁面重新加載和恢復(fù)后仍然存在。

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

使用相同的 URL 打開多個選項(xiàng)卡/窗口會為每個選項(xiàng)卡/窗口創(chuàng)建 sessionStorage。

復(fù)制選項(xiàng)卡會將選項(xiàng)卡的 sessionStorage 復(fù)制到新選項(xiàng)卡中。

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

假設(shè)我們在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 可以在多個選項(xiàng)卡之間共享數(shù)據(jù)嗎?

最終答案

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

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

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

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

所以,我們可以得出結(jié)論,sessionStorage不能在多個窗口或選項(xiàng)卡之間共享數(shù)據(jù),但是,當(dāng)通過window.open或鏈接打開新頁面時(shí),新頁面會復(fù)制上一個頁面的sessionStorage。

總結(jié)

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


責(zé)任編輯:華軒 來源: web前端開發(fā)
相關(guān)推薦

2025-01-07 12:58:28

2024-07-22 14:09:22

@AsyncJava

2024-09-18 09:02:14

單核服務(wù)器線程切換

2023-08-13 16:17:31

2020-03-10 08:01:05

Java堆內(nèi)存線程共享

2020-03-06 15:36:01

Redis內(nèi)存宕機(jī)

2022-07-26 08:40:42

Java并發(fā)工具類

2022-08-02 06:31:32

Java并發(fā)工具類

2022-07-12 12:05:22

JavaSemaphore

2021-07-06 07:08:18

管控數(shù)據(jù)數(shù)倉

2022-02-08 08:14:07

Context數(shù)據(jù)線程

2020-09-26 22:04:32

數(shù)據(jù)安全傳輸HTTPSHTTP 協(xié)議

2023-07-11 08:40:02

IO模型后臺

2022-05-23 08:43:02

BigIntJavaScript內(nèi)置對象

2022-06-30 08:14:05

Java阻塞隊(duì)列

2022-07-11 10:47:46

容器JAVA

2024-09-14 10:50:29

通信代碼函數(shù)

2018-10-22 14:28:26

面試官數(shù)據(jù)公司

2019-06-21 15:20:05

Redis數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫

2015-08-13 10:29:12

面試面試官
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成av在线| 亚洲精品久久久久国产 | 久久久久久亚洲精品 | 日韩在线观看精品 | 国产精品欧美精品日韩精品 | 成人久久久 | 免费三级网站 | 一区二区三区国产 | 日韩在线观看精品 | 国产一区二区三区精品久久久 | 国产高清视频一区 | 久久久久91| 欧美三区在线观看 | 欧美黄视频 | 国产亚韩 | 久久免费观看一级毛片 | 国产精品免费av | 久久精品欧美一区二区三区不卡 | 黄色一级在线播放 | 国产免费视频在线 | 亚洲字幕在线观看 | 成人日韩 | 99精品欧美一区二区三区综合在线 | 天天操天天射天天 | 亚洲 精品 综合 精品 自拍 | 午夜www | 国产一区二区三区在线免费观看 | 欧美一级片 | 中文字幕高清 | 美女视频一区二区三区 | 久久久精品黄色 | 麻豆av免费观看 | 99免费精品视频 | 精品一区二区三区在线观看国产 | 在线观看深夜视频 | 日日日操 | 免费在线视频一区二区 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | www.色婷婷 | 美女黄色在线观看 | 一级看片免费视频囗交动图 |