關於localStorage的一點認識
阿新 • • 發佈:2018-11-12
引言
在HTML5出現之前,為了儲存使用者在網站中一些操作狀態,以便於下次開啟頁面時恢復到上次訪問時的一些狀態,在瀏覽器端常常使用Cookie來儲存一些資訊。最典型的應用是判斷使用者是否登入過網站。但是,Cookie的大小受限,每個Cookie的大小不超過4KB,瀏覽器一般只允許存放300個Cookie,而且Cookie也存在安全性問題。
於是,HTML5為我們帶來了全新的本地儲存方式:localStorage,有5M大小,而且從IE8就開始支援了。也就是說IE6、7是不支援localStorage的,Cookie可以成為IE6、7下的一種替代方案。
API
//獲取鍵值對數量 localStorage.length() //讀取 localStorage.getItem('key') // 新增/修改 localStorage.setItem('key','value') // 刪除對應鍵值 localStorage.removeItem('key') //刪除所有資料 localStorage.clear()
有效期和作用域
localStorage儲存的資料是永久性的,其作用域限定在文件源級別(只要URL的協議、埠、主機名三者中有一個不同,就屬於不同的文件源)。除此之外,localStorage也受瀏覽器限制,如果使用chrome訪問一個網站,下次用firefox再次訪問是獲取不到上次儲存的資料的。
例項使用
localStorage 存的值經小編測試應該是要求是字串型別,如果從後臺獲取的json資料不經過jsonstringify()轉換,或者使用JQ中的string()或 .tostring()函式,會發現存不進去的。
如下:
獲取直接使用對應的API
var token = localStorage.getItem('token');
在瀏覽器中按f12,使用F12除錯工具,可以檢視到localStorage中的儲存資訊
如果有的話,說明儲存成功,之後在localStorage作用域下都可以直接用getItem()取出token了