我一直在使用phonegap一点时间,而且我在使用存储概念方面遇到了一些麻烦。
因此,文档说明您可以打开这个数据库,它是一个SQLite实现。“window.openDatabase返回一个新的Database对象。
此方法将创建一个新的SQL Lite数据库并返回一个Database对象。使用数据库对象来操纵数据。“ http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database 我现在正在webApp上使用它:
var myBuggedDb = window.openDatabase(shortName, version, displayName,maxSize);
它就像一个魅力。我可以使用它来进行查询,从选择到删除。一切都好,对吗?但是当我检查和调试我的代码时,我看到创建的是一个WebSql数据库。我还咨询了很多博客,维基和其他地方,以获得有关该主题的更多信息。很多人都认为两种技术都搞得一团糟。 Phonegap插件页面甚至没有sqlite插件。
现在,我们将更改我们的应用程序,以便从localStorage获取JSON对象并将其转换。我想将它插入我们的数据库。但现在我很困惑,我不知道这是webSql还是SQLite。有人可以澄清吗?它会在设备上作为SQLite或WebSql工作吗?
编辑:如果您将来正在寻找这个问题,请谨慎行事:技术已经发生了很大变化,indexedDB支持正在增长,还有许多其他选项,如Lawchair等。在使用任何东西之前做一点研究!答案 0 :(得分:7)
HTML 5具有数据库的这种实现,并且通过将Sql Lite数据库嵌入到浏览器中来完成实现。
浏览器就像chrome和Safari那样使用sqlLite实现的Html5数据库被称为websql,但是当我联系时,Mozilla没有实现Websql,而是实现了索引数据库。
我认为更好的选择是使用Backbone.js或Lawnchair,虽然它们内部都使用websql,但API包含了一切。
希望这有帮助。
答案 1 :(得分:7)
我建议使用WebSQL。 详细原因如下所述:
让我们继续考虑使用PhoneGap的3个主要平台:
理想情况下,它就像这样 - 你有一个Windows,你可以在其上包装一个WebSQL插件[不可靠],你可以在其上包装一个SQLite插件[高度不可靠]
因此 - 现在是你的电话。即使你正在制作phonegap应用程序,他们的意思是快速,并且创建一个堆叠层而不是另一个堆栈肯定会使它变慢。
答案 2 :(得分:1)
var myBuggedDb = window.openDatabase(shortName,version,displayName,maxSize);打开websql数据库。如果您想使用Sqlite,您必须使用第三方插件,如https://github.com/litehelpers/Cordova-sqlite-storage