当前位置: 首页 > Web前端 > HTML5

JavaScriptのMUI-APP数据存储方法

时间:2023-04-05 01:46:59 HTML5

HTML5+多种离线本地存储方案总结:[√]HTML5标准方案:cookie、localstorage、sessionstorage、websql、indexedDB[√]HTML5Plus扩展方案:plus.navigator.setCookie,plus.storage,plus.io分析:cookie的大小是最小的,可以设置过期时间。不能跨域。所有设备都支持(IOS不支持ASCII码,不支持中文)。localstorage适合存储key和value键值对,数据量一般不超过5M。它是一种常用的轻量级数据存储解决方案。不能跨域。SessionStorage也是一个键值对,它的特点是app关闭后消失,不能跨webview。它通常不用于持久性数据存储。websql**是手机上关系型数据库的最佳解决方案,各种手机都支持。只是标准不再更新了。但目前唯一可商用的手机重量数据存储方案。注意iOS8、9的wkWebview不支持websql。indexedDB是HTML5中最新的数据存储规范,但它不是基于SQL,而是基于对象。indexedDB性能更高,而且都是异步处理,所以学习难度更大。最主要的是目前的手机支持还不够。IndexedDB仅支持Android4.4及以上版本和iOS8及以上版本。与HTML5标准cookieplus.navigator.setCookie相比,plus的扩展主要是为了跨域。所谓spanning就是本地HTML页面和服务端HTML页面共享cookie数据,或者说本地页面的js可以操作服务端页面生成的cookie。如果没有跨越要求,则不需要使用plus扩展。注意iOS8之后的wkWebview不支持setcookie。plus.storageplus.storage也是一个键值对数据存储。封装了OS对原生App使用的键值对存储数据库,供JS使用。plus.storage没有理论上的大小限制。与localstorage相比,plus.storage还有一个特点就是可以跨域。当一个存储的数据需要本地和服务端页面同时读写时,就会涉及到跨域问题。这时HTML5的localstorage不能满足需求,只能使用plus.storage。plus.storage操作比localstorage慢几十毫秒,尤其是在循环中调用plusapi会放大这种慢。如果不是因为大小限制或跨越,请尝试使用localstorage。(有网友封装了一个框架,对于key-value数据,当localstorage超过5m时自动切换到plus.storage,参考http://ask.dcloud.net.cn/arti...虽然这样听起来有点复杂,但我们很欣赏这种追求极致性能的开发者。)plus.ioplus.io用于读写文件。虽然也可以通过读写txt等文件来存储数据,但是没有专业存储和websql方便。plus.io更多的是用于图片等多媒体文件的本地存储。比如图文列表离线使用一般有两种方法:图片不通过img的src下载,而是通过plus下载。src下载,然后用canvas将img保存为图片文件。下次不联网的时候,img的scr直接指向本地文件。实际开发中经常用到以下方案:websql+base64+html5localstorage保存图片和文件+plus.dowload缓存图片原文地址:https://segmentfault.com/a/11...喜欢的话,你应该: 喜欢$underline{or}$...如果你有新的想法,可以直接在下方评论或者联系我。--------------------【原来的】----------------------------------