很早之前久知道sessionStorage ,也學習過,但沒有實戰使用過 。最近團隊遇到一個問題《electronjs中打開新頁面sessionStorage丟失》,讓我有機會重新來認識一遍它。
同源策略 和 它的api 這個我就不強調了 。通過實測,我得到下面幾個結論 。
+各個標簽頁的sessionStorage 是獨立的 。
+在a標簽頁寫入修改刪除sessionStorage ,不會影響到已經打開的標簽頁中的sessionStorage 。
+通過a標簽,window.open,window.location,windows.history ,右鍵復制 等方式在新標簽頁,本頁,iframe ,新窗口中打開新頁面,當前標簽頁的 sessionStorage 會傳遞到新頁面。
+通過按住 ctrl鍵打開新標簽頁,或者右鍵菜單打開新標簽頁,新窗口 ,當前標簽頁的 sessionStorage 是不會傳遞到新頁面的 。
+關閉某個標簽頁,該標簽頁的sessionStorage 會被銷毀。不影響其他標簽頁或者窗口 。
+在某個標簽頁即使跳出了當前站點,返回來的時候,sessionStorage 也還在的 。
鑒於它有以上特點 :
1,可以用來做多賬戶登錄 , sessionid 不用cookie存儲,用 sessionStorage 來存儲。spa應用比較適合 。
以上測試都是建立在chrome最新版上