Tag: indexeddb

HTML5 IndexedDB,Web SQL数据库和浏览器大战

我开始开发具有脱机数据库存储要求的Web应用程序。 长话短说,应用程序应该可以运行在: Chrome首选桌面浏览器之一 iOS上的Safari Android的原生浏览器(基于V8和WebKit) 所以问题是select哪种技术:IndexedDB或Web SQL数据库? 关于Web SQL数据库,一方面可以在任何一种情况下使用。 另一方面,Mozilla声称Firefox永远不会实现它,并且根据HTML5 工作草案的规范已经陷入了僵局: 这个规范已经陷入僵局:所有感兴趣的实现者都使用了相同的SQL后端(Sqlite),但是我们需要多个独立的实现来沿着标准化path前进。 在另一个实现者对实现这个规范感兴趣之前,SQL方言的描述只是对Sqlite的一个引用,这对于一个标准是不可接受的。 如果您是实现独立SQL后端的实现者,请联系编辑,以便他可以编写一个方言规范,从而使规范向前迈进。 IndexedDB是Mozilla推崇的另一种select,但它只会在Firefox 4中出现.Microsoft感兴趣,Chrome也会支持它。 我对于苹果公司关于IndexedDB的计划一无所知。 我个人倾向于selectWeb SQL数据库,但仅仅因为我习惯了SQLite,我喜欢SQL的强大function和performance力,而且我理解了关系模型。 IndexedDB对我来说是一个不确定的因素。 这就是说,我害怕在错误的马上投注。 即使IndexedDB成为标准,假设对Web SQL数据库的支持将继续存在是否安全? (关于CouchDB的一个注释:你也可以把它看作是一种替代方法吗?)

indexedDB在概念上与HTML5本地存储有什么不同?

indexedDB和本地存储都是关键值存储。 有两个关键/价值商店有什么好处? indexedDB是asynchronous的,但连接(最耗时的)是手动的。 它们看起来像asynchronous调用一样在同一个线程中运行。 这将如何阻止用户界面? indexedDB允许一个更大的商店。 为什么不增加HTML5商店的大小? 我正在挠头。 indexedDB有什么意义?

在2011年开发适用于iOS / Android的HTML5离线存储解决scheme

问题: 我需要一个设备不可知(如HTML5)解决scheme,以在手机或平板电脑types的设备(例如iOS / Android)上存储和查询250,000多行数据。 这个想法是我有人在偏远地区工作,没有任何手机数据连接,他们需要对这些数据运行查询和离线编辑。 部分将基于地理位置,所以如果他们所在地区有资产(使用GPS),那么它将显示这些资产,并让它们被编辑。 当他们回到办公室时,他们可以将数据同步到办公室服务器。 我从Web标准的angular度来看待这个问题的原因基本上是通过在HTML5中编写一次而节省金钱和时间,然后跨多个平台工作,而不是在Objective C和Java中编写两次。 另外,如果你写的东西是平台不可知的,那么你就不会被locking在船上,而当每个人都移动到新船上的时候,也不会停下来。 我们有一个为Windows Mobile 5编写的类似的应用程序,现在没用了,因为这个平台已经死了。 设备上的离线数据库需要是: 快(2秒以下的响应) 可能执行连接并与其他能够查询数据库的表有关系 select一定范围内的数据或标准,例如基于GPS读数的x和y坐标。 选项: HTML5本地存储: 对于less量数据<5,000个键/值,如果将其转换为JSON,甚至可以将数组/对象存储在其中。 缺点: 即使在高端机器上,对于超过10,000行,浏览器也会慢慢爬行。 无法对数据执行复杂的查询以提取所需的数据,因为您必须迭代整个存储并手动search。 可以存储的存储量限制 Web SQL数据库: 满足要求。 快速运行250,000行查询(1-2secs) 可以创build复杂的查询,连接等 由Safari,Android和Opera支持,因此可以在iOS和Android设备上运行 缺点: 截至2010年11月已弃用 跨目录攻击的安全漏洞 不是一个真正的问题,因为我们不会共享主机 IndexedDB的: 除索引外,键/值对象存储与本地存储类似。 缺点: 慢速运行一个查询200,000行(15-18secs) 无法运行复杂的查询 无法与其他表连接 不受主要手机或平板电脑设备的支持,例如iPad / Android 标准不完整 这留下了实现已过时的Web SQL方法的唯一select,该方法可能只能工作一年左右。 IndexedDB和本地存储目前无法使用。 我不确定Mozilla和Microsoft如何获得Web SQL数据库标准,以及W3C为什么会这样做。 据说他们之间有77%的桌面浏览器市场。 在先进的移动设备上,Mozilla和微软几乎没有影响,因为Safari,Opera和Android的市场份额超过90% 。 如何Mozilla和微软可以决定哪个标准应该在移动市场中使用,哪个离线存储最有可能被使用,这没有任何意义。 在Mozilla的评论中,他们为什么要使用IndexedDB而不是“开发人员美学”,他们不喜欢在JavaScript中运行SQL的想法。 我不买它。 […]

如何在Chrome中删除indexedDB

我在一个涉及使用IndexedDB的项目中工作。 当我开始了解这项技术时,我需要手动删除一个indexedDB,这样我才能重新开始。 我find了在Firefox上做到这一点的方法,但我找不到Google Chrome的方式。 我试图删除这个文件夹的内容(我正在使用Mac): {home}/Library/Application Support/Google/Chrome/Default/IndexedDB 但似乎Chrome stil有任何地方的数据库,所以我不能重新开始。

存储脱机Web应用程序的图像数据(客户端存储数据库)

我有一个使用appcaching的离线web应用程序。 我需要提供大约10MB – 20MB的数据(主要由PNG图像文件组成)保存(客户端)。 操作如下: Web应用程序下载并安装在appcache中(使用清单) 来自服务器PNG数据文件的Web应用程序请求(如何?请参阅下面的替代方法) 偶尔web应用与服务器重新同步,并对PNG数据库进行小部分更新/删除/添加 仅供参考:服务器是一个JSON REST服务器,可以将文件放入wwwroot中取出 这里是我目前对处理二进制BLOB存储的基于客户端的“数据库”的分析 请参见底部的更新 AppCache (通过清单添加所有的PNG,然后按需更新) CON:对PNG数据库项目的任何更改都意味着完全下载清单中的所有项目(真是坏消息!) WebStorage CON:专为JSON存储而devise CON:只能通过base64编码存储blob(由于解码成本可能是致命的缺陷) CON:webStorage硬盘限制为5MB http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html PhoneGap&SQLLite CON:赞助商将拒绝作为需要authentication的本地应用程序 ZIP文件 服务器创build一个zip文件,将其放置在wwwroot中,并通知客户端 用户必须手动解压缩(至less这是我如何看到它)并保存到客户端文件系统 Web应用程序使用FileSystem API来引用文件 CON:ZIP可能太大(zip64?),需要很长时间才能创build CON:不知道FileSystem API总是可以读出沙盒(我想是这样) USB或SD卡 (回到石器时代….) 离线前,用户将在服务器本地 所以我们可以让他插入一个SD卡,让服务器填充PNG文件 然后用户将其插入笔记本电脑,平板电脑 Web应用程序将使用FileSystem API来读取文件 CON:不知道FileSystem API总是可以读出沙箱(我这么认为) 的WebSQL CON:w3c已经放弃了(很糟糕) 我可能会考虑一个使用IndexedDB和WebSQL作为后备的Javascript包装器 FileSystem API Chrome支持读/写blob CON:不清楚IE和FireFox(IE10,有非标准的msSave) caniuse.com报告IOS和Android的支持(但是,这又是,这只是JSON的R / W,还是它包括用于写作的完整的blob API? CON:FireFox的人不喜欢FileSystem API,不清楚他们是否支持保存blob: https : //hacks.mozilla.org/2012/07/why-no-filesystem-api-in-firefox/ […]