4
为脱机Web应用程序存储图像数据(客户端存储数据库)
我有一个使用appcaching的脱机Web应用程序。我需要提供大约10MB-20MB的数据(客户端),该数据主要由PNG图像文件组成。操作如下: Web应用程序下载并安装在appcache中(使用清单) 来自服务器PNG数据文件的Web应用请求(如何?-请参见下面的替代方法) 有时,Web应用程序会与服务器重新同步,并对PNG数据库进行少量的部分更新/删除/添加 仅供参考:服务器是JSON REST服务器,可以将文件放在wwwroot中以进行提取 这是我目前对处理二进制Blob存储的基于客户端的“数据库”的分析 在底部查看更新 AppCache(通过清单添加所有PNG,然后按需更新) 缺点:PNG数据库项目的任何更改都意味着完整下载清单中的所有项目(真的是坏消息!) 网络存储 CON:专为JSON存储而设计 CON:只能通过base64编码存储Blob(由于解码成本高,可能是致命缺陷) CON:webStorage的5MB硬限制http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html PhoneGap和SQLLite 缺点:赞助商将其拒绝为需要认证的本地应用 ZIP文件 服务器创建一个zip文件,将其放在wwwroot中,并通知客户端 用户必须手动解压缩(至少我是这样)并将其保存到客户端文件系统 Web应用程序使用FileSystem API引用文件 缺点:ZIP可能太大(zip64?),创建时间很长 缺点:不确定FileSystem API是否可以始终从沙箱中读取(我认为是) USB或SD卡(回到石器时代。...) 用户将在离线之前位于服务器本地 这样我们就可以让他插入SD卡,让服务器用PNG文件填充 然后用户将其插入笔记本电脑,平板电脑 Web应用程序将使用FileSystem API读取文件 缺点:不确定FileSystem API是否可以始终从沙箱中读取(我认为是) WebSQL 缺点:w3c放弃了它(非常糟糕) 我可能会考虑使用IndexedDB和WebSQL作为后备的Javascript包装器 文件系统API Chrome支持读/写Blob 缺点:不清楚IE和FireFox(IE10,具有非标准msSave) caniuse.com报告了IOS和Android支持(但同样,这仅仅是JSON的读/写,还是它包含用于编写的完整blob API? 缺点:FireFox员工不喜欢FileSystem API,也不清楚他们是否支持保存Blob:https://hacks.mozilla.org/2012/07/why-no-filesystem-api-in-firefox/ PRO:很多比IndexedDB的更快斑点根据jsperf http://jsperf.com/indexeddb-vs-localstorage/15(第2页) 索引数据库 IE10和FireFox的良好支持(保存,读取blob) 比文件系统更好的速度和更轻松的管理(删除,更新) 专业人士:请参阅速度测试:http : //jsperf.com/indexeddb-vs-localstorage/15 …