發佈自 Kindem的博客,歡迎你們轉載,可是要注意註明出處
在HTML5中,引入了兩個新的前端存儲特性:javascript
這二者很是類似,都是用來在前端保存必定量的數據,稱爲前端存儲,可是這二者仍然存在必定區別:html
生命週期:前端
存儲大小:html5
存儲位置:java
存儲內容類型:web
獲取方式:shell
可見localStorage適合在前端存儲長時間使用的數據, 而sessionStorage適合存儲短時間使用、一次性的數據npm
另外這裏要提一句,sessionStorage並非session:json
這裏只介紹更加經常使用的localStorage的使用,而sessionStorage的使用其實也相似瀏覽器
localStorage做爲一個在HTML5中引入的特性,在IE6/7等一些低版本的瀏覽器中是沒法被支持的,因此建議在使用localStorage以前先檢查瀏覽器支持狀況:
if (!window.localStorage) { // 當瀏覽器不支持 localStorage ... } else { // 瀏覽器支持 localStorage ... }
localStorage的使用也很簡單,在localStorage中,數據都是以鍵值對的形式存在,可使用json對象的形式直接對localStorage中的鍵值對進行操做:
// 設置數據 localStorage.a = 'hello'; localStorage.b = 'zero'; // 讀取數據 console.log(localStorage.a); console.log(localStorage.b);
就那麼簡單
可是這裏要注意一點,存儲在localStorage中的數據必定是以字符串形式存在的,因此當你存入/讀取其餘形式的數據時,須要進行類型轉換才行:
// 存入 json 數據 localStorage.jsonTest = JSON.stringify({ a: 'hello', b: 'zero' }); // 讀取 json 數據 console.log(JSON.parse(localStorage.jsonTest).a); console.log(JSON.parse(localStorage.jsonTest).b);
有不少js庫提供了一系列簡化localStorage而且提供跨平臺操做的功能,使用它們能夠更加輕易地使用localStorage,這裏介紹一個js庫——store.js
store.js 的一大優勢就是他將爲你自動進行類型轉換,至關於你能夠直接在 localStorage 中儲存諸如 json 對象等類型的數據,這些對你來講是透明的
安裝:
npm install store
API:
// 引入 let store = require('store'); // 設置數據 store.set('user', { name: 'Kindem' }); // 獲取數據 let obj = store.get('user'); // 刪除數據 store.remove('user'); // 刪除全部數據 store.clearAll(); // 遍歷鍵值對 store.each((value, key) => { // do something ... });