Phonegap:WebSql还是SqLite?

13

我最近开始使用PhoneGap,并且在了解其存储机制时遇到了一些问题。

文档中提到有一个数据库可以打开,它是一个SQLite实现。"window.openDatabase返回一个新的Database对象。

该方法将创建一个新的SQL Lite数据库并返回一个Database对象。使用Database对象来操作数据。" http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database 我目前正在我的Web应用程序中使用它:

var myBuggedDb = window.openDatabase(shortName, version, displayName,maxSize);

它运作得非常好。我可以使用它来进行查询,从选择到删除。一切都很好,对吧?但是当我检查和调试我的代码时,我发现创建的是一个WebSql数据库。我还查阅了许多博客、维基和其他地方以获取更多关于这个主题的信息。似乎许多人都把这两种技术搞混了。Phonegap插件页面甚至没有SQLite插件。

现在,我们将更改我们的应用程序,使其从localStorage中获取JSON对象并进行转换。我想将其插入到我们的数据库中。但是现在我很困惑,我不知道这是WebSql还是SQLite。有人能澄清一下吗?毕竟,在设备上它会像SQLite还是WebSql一样工作?

编辑:如果您将来要寻找这个问题,请小心:技术已经发生了很大变化,indexedDB的支持正在增长,还有许多其他选项,如Lawchair等。在使用任何技术之前,请先做一些研究!

3个回答

7
HTML5有一种数据库实现方式,即将Sql Lite数据库嵌入到浏览器中。像Chrome和Safari这样的浏览器使用SqlLite实现了Html5数据库,称为websql,但在我联系的时候,Mozilla没有实现Websql,而是实现了Indexed DB。我认为更好的选择是使用Backbone.js或Lawnchair,虽然它们在内部都使用websql,但API会为您封装所有内容。希望这可以帮助你。

是的,这帮了很多忙,澄清了许多问题。由于移动兼容性的原因,IndexedDB现在对我们来说不是一个选择。但我正在查看Lawnchair。谢谢,Varun! - Malavos

7
我建议使用WebSQL。详细原因如下所述:
让我们考虑一下您将使用PhoneGap的三个主要平台:
- IOS:WebSQL - 支持,SQLite - 部分支持 - Android:WebSQL - 支持,SQLite - 完全支持 - Windows:WebSQL - 不支持,SQLite - 不支持
因此,理想情况下是这样的——您有Windows,然后在其上面包装一个WebSQL插件[不可靠],再在其上面包装一个SQLite插件[高度不可靠]。
因此,现在由您来决定。即使您正在制作phonegap应用程序,它们也应该快速,并且创建一个堆栈的层会使其变慢。

3
WebSQL已经被弃用。 - Umut Özel

1

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