PhoneGap - SQLite还是IndexedDB?

18

我是一名使用phonegap开始的web开发人员。我需要为iPhone、Android和Windows Phone 8创建一个应用程序。
我需要在本地存储一些数据(localStorage存储不了太大的数据)。
我不知道哪种解决方案是最好的:

  1. Phonegap提供了Storage(基于被弃用的WebSQL),但它不支持Windows Phone。是否有插件来填补这个空缺?
  2. 我了解过Indexed DB,但以前没有使用过它,而且对我来说不是很直观。我不确定它是否在所有平台上都得到了完全支持?我根据此文章示例实践(http://blog.nparashuram.com/2012/10/indexeddb-example-on-cordova-phonegap_12.html)
  3. 或许我可以使用phonegap插件https://github.com/marcucio/Cordova-WP-SqlitePlugin(Windows Phone) 和 https://github.com/marcucio/Cordova-SQLitePlugin for android and iphone.。这样我的代码在所有平台上都是一样的,我猜想。

有人之前创建过这样的应用程序吗?我将非常感激任何解决方案或想法。

5个回答

12

1
我看过这个例子,但我对那个解决方案并不满意。Cordova-WP-SqlitePlugin怎么样?它能用吗? - Iwona Trąbka
1
我从未尝试过Cordova-WP-SqlitePlugin,因此没有任何关于它的稳定性/好坏的信息。 - Sergei Grebnov
4
使用 Cordova-WP-SqlitePlugin 不是很稳定,会出现大量错误,并且经常显示 SQLite 忙的状态。不建议使用。 - shamittomar

3

IndexedDB -

  • 它与许多流行的移动操作系统和版本不兼容
  • 它仅与非常特定版本的移动操作系统兼容
  • 开发人员无法在IndexedDB中使用SQL。 SQL语句可以用于SQLite和WebSQL
  • 大多数开发人员尽可能避免使用IndexedDB

WebSQL -

  • 它已被W3C弃用,这意味着它不再得到维护或开发
  • 它需要另一个插件才能使移动应用程序与Google Android和Apple iOS等流行的移动操作系统兼容

SQLite -

  • 它获得了Google的奖项
  • SQLite有其官方网站。IndexedDB和WebSQL没有
  • 在Google上,SQLite返回1.8百万个结果。 WebSQL返回不到70万个结果,而IndexedDB返回282K个结果。
  • 开发人员可以使用常见的SQL语句与SQLite一起使用
  • 它与iOS和Android等所有流行的移动操作系统的大多数版本兼容

如果您想快速学习SQLite

使用Android和Phonegap存储SQLite数据库


6
首先,indexedDB和WebSQL都有官方网页,作为w3c标准化努力的一部分。SQLite不是一个开放标准。 其次,你认为开发者在积极避免使用indexedDB,但我的经验不同。 第三,没有名为“Polyfill”的插件 - 在Web开发中,“polyfill”是一个库,查看当前浏览器中已实现的内容,并为缺失的内容提供重新实现。是的,存在一个不错的indexedDB polyfill(请检查GitHub),使API在所有地方都可用。 - Jon Watte
@JonWatte没问题。没有一种解决方案适用于所有情况。在互联网上争论就像试图成为特殊奥林匹克运动会的最佳人选。你可以告诉我更多,对于我和其他选择存储技术的人来说。使用IndexedDB相比WebSQL或SQLite有什么优势? - KershawRocks
顺便说一下,在谷歌上输入“polyfill”后的第一个结果显示它是一个插件,而维基百科关于Polypill的条目定义它为“可下载代码,提供了浏览器中没有内置的功能”,这正是插件所做的事情。也许它与其他常见插件安装方式不同,但这正是插件的作用。 - KershawRocks
2
原帖作者表示存在一个名为“Polyfill”的插件。 “Polyfill”不是“一个”插件的名称 - 有许多插件(和库)提供polyfill功能。说你需要“另一个名为Polyfill的插件”就像说你需要“另一个线程”,而你要找的是“一件蓝色男式衬衫”。 - Jon Watte

3

最新更新(2014年5月5日): MS Open Tech发布的新跨平台Cordova WebSQL插件

Microsoft Open Technologies发布了新的开源WebSQL插件,可用于Apache Cordova和PhoneGap。该插件允许开发人员使用完全相同的JavaScript代码在Android、iOS、Windows Phone和Windows Store上集成基于SQL的持久本地存储解决方案。


3

LocalForage似乎是最好的、最新的解决方案: https://github.com/localForage/localForage(1000个提交,83个贡献者)

它对不支持的浏览器有备选方案。 我还没有试过它(在phonegap上),但我一旦尝试了就会给你反馈;)


localForage由Mozilla维护,这是一个巨大的优势。然而,他们还有一些边缘情况需要解决,同时虽然API很简单,但也是最贫乏的。 - gustavohenke

1

嗯,能否方便我们一点,给个链接? - B T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接