MUI - 封裝localStorage與plus.storage 2.0版本
在使用plus.storage頻繁地存取數據時,可以感覺到明顯的卡頓,而且很耗內存,
在切換到localstorage時雖然效率很高,頁面渲染速度明顯變快了,且手機發熱不明顯,不過又遇到了存儲瓶頸(一般<=5M),
因此折中采取了plus.storage與localStorage混合的方案:
當localStorage達到存儲瓶頸時切換到plus.storage
封裝的方法基本上和plus.storage
沒區別。關於plus.storage
參考http://www.html5plus.org/doc/zh_cn/storage.html
接口
-
getItem
通過鍵key
檢索獲取應用存儲的值var item=myStorage.getItem(key);
- 參數
key
:DOMString
必選
存儲的鍵值 - 返回值
DOMString
: 鍵key
對應應用存儲的值,如果沒有則返回null
。 - 說明:方法內部默認先從
localStorage
取值,沒有再從plus.Storage
取值
- 參數
-
setItem
修改或添加鍵值(key-value)對數據到應用數據存儲中void myStorage.setItem(key, value);
- 說明:方法默認將數據存儲在
localStorage
中,超出localStorage
容量限制則存到plus.storage
中
- 說明:方法默認將數據存儲在
-
getLength
獲取localStorage
中保存的鍵值對的個數var len=myStorage.getLength();
-
getLengthPlus
獲取plus.storage
中保存的鍵值對的個數 -
removeItem
通過key
值刪除鍵值對存儲的數據void myStorage.removeItem();
-
clear
清除應用所有的鍵值對存儲數據void myStorage.clear();
-
key
獲取localStorage
鍵值對中指定索引值的key值var foo = myStorage.key(index);
-
keyPlus
獲取plus.storage
鍵值對中指定索引值的key值var foo = myStorage.keyPlus(index);
-
getItemByIndex
通過鍵key
檢索獲取應用存儲localStorage
的值var item=myStorage.getItemByIndex(index);
- 參數
index
:Number
必選 存儲鍵值的索引 - 返回值
DOMString
: 鍵key
對應應用存儲的值,如果沒有則返回null
。
- 參數
-
getItemByIndexPlus
通過鍵key
檢索獲取應用存儲的值var item=myStorage.getItemByIndexPlus(index);
- 參數
index
:Number
必選 存儲鍵值的索引 - 返回值
DOMString
: 鍵key
對應應用存儲的值,如果沒有則返回null
。
- 參數
-
getItems
通過鍵key
檢索獲取應用存儲的值var items=myStorage.getItems(key)
- 參數
key
:Number
可選 存儲鍵值的索引 - 返回值
Array
:不傳key
參則返回所有對象,否則返回含有該key的對象
- 參數
-
removeItemByKeys
清除指定前綴的存儲對象void myStorage.removeItemBykeys(keys,cb)
- 參數
keys
:DOMString
或Array
, 必選keys
為String
,方法內部自動轉換為Array
- 參數
cb
:Function
可選 回調函數
- 參數
說明
以上方法經常用到的還是getItem
setItem
getItems
在測試或控制台查看時倒是偶爾用得到
removeItemBykeys
是結合本地文件common.cache.clear
緩存清除時一齊使用的
代碼已分享到github
地址在https://github.com/phillyx/MUIDemos/tree/master/js/myStorage.js
也可直接使用壓縮后的代碼https://github.com/phillyx/MUIDemos/tree/master/dist/common.js