我需要为 iPad/平板电脑设备构建一个离线 HTML5 Web 应用程序,用户可以从服务器下载数据集(数据表)并将其存储在设备上。然后,用户可以断开与服务器的连接并在设备上本地查看/编辑数据。这适用于在没有蜂窝网络覆盖且需要收集/更新数据的偏远地区锻炼的人。当他们回到办公室时,他们可以将数据同步/上传回服务器。它需要 HTML5 的原因是它与平台无关,即只要它具有支持 HTML5 的现代 Web 浏览器,它就可以在 iOS、Android 等上运行。
现在我已经使用 HTML5 本地存储(用于数据)和 HTML5 离线应用程序缓存(用于 pages/css/js/images)构建了系统,并且它适用于小型数据集(我可以查看、编辑和保存离线时和在线时加载/同步)。现在我需要扩展到 10,000 行数据。它可以工作,但速度很慢,在英特尔四核 8GB 机器上加载时会挂起浏览器 10 秒。
所以我一直在研究一些比本地存储更好的替代方案:
1)WebSQL:将能够使用 SQL 语言查询数据并进行连接等。问题是它现在已被弃用,不再受支持,所以我不想花时间为它构建一些东西。
2) IndexedDB:使用对象存储(从技术上讲,我已经使用本地存储 API 存储对象并使用 JSON 存储)。可能更快,因为它使用带有 SQL lite 后端的索引。有很多样板代码可以完成简单的任务,例如创建数据库、添加数据库、读取数据库、迭代数据库。我只想做一个简单的查询,select(xyc, abc).where(abc = 123).limit(20)
但必须编写大量的 JavaScript 代码来完成它。一个人如何编写自己的代码来在表之间进行连接,任何地方的例子?
我发现了一个jQuery 插件,它可以让生活变得更简单。周围是否有其他库或其他库可以减轻使用 IndexedDB 的痛苦?
非常感谢!