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