區別:localStorage生命週期是永久,除非用戶清除localStorage訊息,否則這些資訊將永遠存在;sessionStorage生命週期為當前視窗或標籤頁,一旦視窗或標籤頁被永久關閉了,那麼所有通過它儲存的資料也就被清空了。
localStorage和sessionStorage一樣都是用來儲存客戶端暫存資訊的物件。
他們都只能儲存字串類型的物件(雖然規範中可以儲存其他原生類型的對象,但是目前為止沒有瀏覽器對其進行實作)。
localStorage生命週期是永久,這表示除非使用者顯示在瀏覽器提供的UI上清除localStorage訊息,否則這些資訊將永遠存在。
sessionStorage生命週期為目前視窗或標籤頁,一旦視窗或標籤頁被永久關閉了,那麼所有透過sessionStorage儲存的資料也就被清空了。
不同瀏覽器無法分享localStorage或sessionStorage中的資訊。相同瀏覽器的不同頁間可以共用相同的 localStorage(頁面屬於相同網域和連接埠),但是不同頁面或標籤頁間無法共享sessionStorage的資訊。這裡要注意的是,頁面及標 簽名頁僅指頂級窗口,如果一個標籤頁包含多個iframe標籤且他們屬於同源頁面,那麼他們之間是可以共享sessionStorage的。
同源的判斷規則:
URL"http://www.example.com/dir/page.html"
的比較。
比較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中文網其他相關文章!