首頁 > 常見問題 > sessionstorage和localstorage的差別是啥?

sessionstorage和localstorage的差別是啥?

青灯夜游
發布: 2020-11-09 14:15:18
原創
34043 人瀏覽過

區別:localStorage生命週期是永久,除非用戶清除localStorage訊息,否則這些資訊將永遠存在;sessionStorage生命週期為當前視窗或標籤頁,一旦視窗或標籤頁被永久關閉了,那麼所有通過它儲存的資料也就被清空了。

sessionstorage和localstorage的差別是啥?

localStorage和sessionStorage一樣都是用來儲存客戶端暫存資訊的物件。

他們都只能儲存字串類型的物件(雖然規範中可以儲存其他原生類型的對象,但是目前為止沒有瀏覽器對其進行實作)。

localStorage生命週期是永久,這表示除非使用者顯示在瀏覽器提供的UI上清除localStorage訊息,否則這些資訊將永遠存在。

sessionStorage生命週期為目前視窗或標籤頁,一旦視窗或標籤頁被永久關閉了,那麼所有透過sessionStorage儲存的資料也就被清空了。

不同瀏覽器無法分享localStorage或sessionStorage中的資訊。相同瀏覽器的不同頁間可以共用相同的 localStorage(頁面屬於相同網域和連接埠),但是不同頁面或標籤頁間無法共享sessionStorage的資訊。這裡要注意的是,頁面及標 簽名頁僅指頂級窗口,如果一個標籤頁包含多個iframe標籤且他們屬於同源頁面,那麼他們之間是可以共享sessionStorage的。

同源的判斷規則:

URL"http://www.example.com/dir/page.html"的比較。

同源#相同的協議,主機,連接埠同源相同的協議,主機,連接埠同源#相同的協議,主機,連接埠https://www.example.com/dir/other.htmlhttp://en.example.com/dir/other.htmlhttp://example.com/dir/other.htmlhttp://v2.www.example.com/dir/other.html#http://www.example.com:80/dir/other.html#不像其他瀏覽器,IE在計算來源的時候沒有包括端口。
比較URL 結果 #結果
##http://www.example.com/dir/page2.html
http://www.example.com/dir2/other.html
http://username:password@www.example.com/dir2/other.html
http://www.example.com:81/dir/other.html##不同來源 相同的協議,主機,連接埠不同
不同來源 協議不同
不同來源 不同主機
不同來源 不同主機(需要精確比對)
#不同來源 不同主機(需要精確匹配)
看情況 連接埠明確,依賴瀏覽器實作

JSON物件提供的parse和stringify將其他資料型別轉換成字串,再儲存到storage就可以了

操作的方式:

存:

    var obj = {"name":"xiaoming","age":"16"}
    localStorage.setItem("userInfo",JSON.stringify(obj));
登入後複製

取:

    var user = JSON.parse(localStorage.getItem("userInfo"))
登入後複製

刪除:

    localStorage.remove("userInfo);
登入後複製

清除:

    localStorage.clear();
登入後複製

以上是sessionstorage和localstorage的差別是啥?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板