本文主要包含localstorage封装,localstorage,localstorage存储,localstorage.setitem,localstorage.getitem等相关知识,教程希望在学习及工作中可以帮助到您
");
</div>
在使用plus.storage频繁地存取数据时,可以感觉到明显的卡顿,而且很耗内存,
在切换到localstorage时虽然效率很高,页面渲染速度明显变快了,且手机发热不明显,不过又遇到了存储瓶颈(一般<=5M),
因此折中采取了plus.storage与localStorage混合的方案:
当localStorage达到存储瓶颈时切换到plus.storage
在切换到localstorage时虽然效率很高,页面渲染速度明显变快了,且手机发热不明显,不过又遇到了存储瓶颈(一般<=5M),
因此折中采取了plus.storage与localStorage混合的方案:
当localStorage达到存储瓶颈时切换到plus.storage
- (function(com, mui) {
- var myStorage = {};
- var first=null;
- function getItem(key) {
- var jsonStr = window.localStorage.getItem(key.toString());
- return jsonStr ? JSON.parse(jsonStr).data : null;
- };
- function getItemPlus(key) {
- var jsonStr = plus.storage.getItem(key.toString());
- console.log(new Date().getTime()-first);
- return jsonStr ? JSON.parse(jsonStr).data : null;
- };
- myStorage.getItem = function(key) {
- first=new Date().getTime();
- return getItem(key) || getItemPlus(key);
- };
- myStorage.setItem = function(key, value) {
- first=new Date().getTime();
- value = JSON.stringify({
- data: value
- });
- key=key.toString();
- try {
- window.localStorage.setItem(key, value);
- } catch (e) {
- console.log(e);
- //TODO 超出localstorage容量限制则存到plus.storage中
- //且删除localStorage重复的数据www.bcty365.com
- removeItem(key);
- plus.storage.setItem(key, value);
- }
- console.log(new Date().getTime()-first);
- };
- function getLength() {
- return window.localStorage.length;