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

接口

  1. getItem

    通过键key检索获取应用存储的值

        var item=myStorage.getItem(key);
    • 参数key: DOMString必选

      存储的键值
    • 返回值DOMString : 键key对应应用存储的值,如果没有则返回null
    • 说明:方法内部默认先从localStorage取值,没有再从plus.Storage取值
  2. setItem

    修改或添加键值(key-value)对数据到应用数据存储中

        void myStorage.setItem(key, value);
    • 说明:方法默认将数据存储在localStorage中,超出localStorage容量限制则存到plus.storage
  3. getLength

    获取localStorage中保存的键值对的个数

        var len=myStorage.getLength();
  4. getLengthPlus

    获取plus.storage中保存的键值对的个数

  5. removeItem

    通过key值删除键值对存储的数据

        void myStorage.removeItem();
  6. clear

    清除应用所有的键值对存储数据

        void myStorage.clear();
  7. key

    获取localStorage键值对中指定索引值的key值

        var foo = myStorage.key(index);
  8. keyPlus

    获取plus.storage键值对中指定索引值的key值

        var foo = myStorage.keyPlus(index);
  9. getItemByIndex

    通过键key检索获取应用存储localStorage的值

        var item=myStorage.getItemByIndex(index);
    • 参数index: Number必选 存储键值的索引
    • 返回值DOMString : 键key对应应用存储的值,如果没有则返回null
  10. getItemByIndexPlus

    通过键key检索获取应用存储的值

        var item=myStorage.getItemByIndexPlus(index);
    • 参数index: Number必选 存储键值的索引
    • 返回值DOMString : 键key对应应用存储的值,如果没有则返回null
  11. getItems

    通过键key检索获取应用存储的值

        var items=myStorage.getItems(key)
    • 参数 key: Number可选 存储键值的索引
    • 返回值Array:不传key参则返回所有对象,否则返回含有该key的对象
  12. removeItemByKeys

    清除指定前缀的存储对象

        void myStorage.removeItemBykeys(keys,cb)
    • 参数keysDOMStringArray, 必选 keysString,方法内部自动转换为Array
    • 参数cbFunction 可选 回调函数

说明

以上方法经常用到的还是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

MUI - 封装localStorage与plus.storage的更多相关文章

  1. mui封装的ajax请求

    由于项目中引进MUI框架,所以就不需要引进jquery,但需要和后台交互时,常写为jquery格式:所以笔者觉得有必要将mui封装的ajax请求在这里提一下: 1,mui框架基于htm5plus的XM ...

  2. vue todolist 封装localstorage

    //封装操作localstorage本地存储的方法 模块化的文件 // nodejs 基础 var storage={ set(key,value){ localStorage.setItem(key ...

  3. 封装localstorage方法

    //封装操作localstorage本地存储的方法 var storage = { //存储 set(key, value) { localStorage.setItem(key, JSON.stri ...

  4. 封装LocalStorage.js

    之前使用vue开发的项目频繁使用到localStorage,封装了一下 localStorage.js文件代码如下: let obj = {}; /** * putLocalStorage 把数据放到 ...

  5. localstorage 更新监测 storage事件

    1.存储更新监测 存储状态监测的原理是storage事件.storage事件说明: https://developer.mozilla.org/zh-CN/docs/Web/API/StorageEv ...

  6. mui封装做好的手机版网站为apk

    BOSS提到的一个功能,就是把已经做好的手机网站http://xxx.com/m/home/index ,想着看起来应该蛮简单,一个html页面里就一个iframe就好了,然后宽度和高度都设置为100 ...

  7. 封装localStorage设置,获取,移除方法

    export const local = { set(key, value) { localStorage.setItem(key, JSON.stringify(value)); }, get(ke ...

  8. 本地存储localStorage以及它的封装接口store.js的使用

    本地存储localStorage以及它的封装接口store.js的使用 sublime-text chrome javascript readyGo 2016年11月20日发布   0 推荐 9 收藏 ...

  9. localStorage/cookie 用法分析与简单封装

    本地存储是HTML5中提出来的概念,分localStorage和sessionStorage.通过本地存储,web应用程序能够在用户浏览器中对数据进行本地的存储.与 cookie 不同,存储限制要大得 ...

随机推荐

  1. mysql视图详解

    什么是视图  视图是从一个或多个表中导出来的表,是一种虚拟存在的表. 视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据. 这样,用户可以不用看到整个数据库中的数据,而之关心对自己有用的数据. ...

  2. 技术 | TypeScript

    技术 | TypeScript   第一次接触TypeScript还是和一帮兄弟在居民楼里撸每日优鲜App的时候,没有想过那么多,只想可以快速实现和快速落地,于是我们选择ionic这个Hybrid框架 ...

  3. WCF简要介绍

    什么是WCF WCF的全称是:Windows Communication Foundation.从本质上来说,它是一套软件开发包,是微软公司推出的符合SOA思想的技术框架.WCF为程序员提供了丰富的功 ...

  4. 2018-12-15-VisualStudio-通过-EditorBrowsable-隐藏不开放的属性或方法

    title author date CreateTime categories VisualStudio 通过 EditorBrowsable 隐藏不开放的属性或方法 lindexi 2018-12- ...

  5. 解决ios移动端双击页面下移

    ios移动端在双击弹出层的时候会出现页面下移,露出底层页面的现象 解决办法: <!DOCTYPE html> <html> <head> <meta char ...

  6. 开发者说 | 分布式事务中间件 Seata 的设计原理

    导读 微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运 ...

  7. 移动web--移动屏幕适配-完整的viewport设置

  8. 使用Jedis操作Redis-使用Java语言在客户端操作---对Sorted-Sets的操作

    //对Sorted-Sets操作 /** * Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中. * 它们之间的主要差别是Sorted-Sets ...

  9. ZooKeeper的分布式锁实现

    分布式锁一般有三种实现方式: 1. 数据库乐观锁: 2. 基于Redis的分布式锁: 3. 基于ZooKeeper的分布式锁. 本篇博客将介绍第三种方式,基于Zookeeper实现分布式锁.虽然网上已 ...

  10. java-编码解码-流的操作规律

    一 编码解码 字符串:String 字节数组:byte[]字符串--编码(getBytes())-->字节数组字节数组--解码(new String(byte[]))-->字符串 publ ...