參考:http://blog.haoji.me/aboute-session-storage.html
① localStorage(本地存儲)和sessionStorage(會話存儲)都是html5中新增加的屬性,它們將瀏覽器的本地存儲大小擴大到了5M;
② 生命周期不同,localStorage如果不進行清除的話數據會一直存在,長久有效;sessionStorage在瀏覽器關閉時數據會被清除;
③ 注意傳入的必須是字符串格式,如果需要傳入復雜的需要使用JSON.parse()和JSON.stringify()來配合;
理解:
后臺的session:
Java的session,它是基于往cookie寫入一個sessonid來實現的,所以只要你不是打開一個隱身窗口,無論你開多少個標簽頁,不同標簽頁之間都會被認為是一個session,你在這個標簽頁登錄了,新開一個標簽輸入地址,仍然是登錄狀態;
sessionStorage的session:
HTML5中的這個sessionStorage和傳統后臺的session并不完全是同一個東西,主要表現在多標簽頁數據是否會共享的問題上的不同;
誤區:之前認為,同一個窗口,只要會話沒過期,不同標簽頁之間,相同域名下的sessionStorage是一樣的;
正確:刷新當前頁面,或者通過location.href、window.open或者通過帶有target="_blank"的a標簽打開新標簽,之前的sessionStorage還在,但是如果是主動打開一個新窗口或者新標簽,那么F12會發現,sessionStorage空空如也,什么都沒有;
總結:也就是說sessionStorage的session僅限于當前標簽頁或者當前標簽頁打開的新標簽頁,通過其他方式新開的窗口或者標簽,不認為是同一個session;
使用:
window.localStorage.setItem( key,? json)
window.localStorage.getItem( key)
window.localStorage.removeItem(key)
window.localStorage.clear()