2013-11-21 48 views
12

我一直在用phonegap工作很短的時間,並且在存儲的概念方面遇到了一些麻煩。Phonegap:WebSql或SqLite?

因此,文件指出,有這個數據庫,你可以打開,這是一個SQLite的實現。「window.openDatabase返回一個新的數據庫對象。

這個方法將創建一個新的SQL精簡版數據庫和返回一個數據庫對象,使用數據庫對象來操作數據。「 http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database 我用它在我的Web應用程序現在:

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

它的工作原理就像一個魅力。我可以用它來進行查詢,從選擇到刪除。一切都很好,對嗎?但是當我檢查和調試我的代碼時,我看到創建的是WebSql數據庫。我還諮詢了很多博客,wiki和其他地方,以獲取有關該主題的更多信息。它注意到很多人都搞不清技術。 Phonegap插件頁面甚至沒有sqlite插件。

現在,我們將更改我們的應用程序,以便從localStorage獲取JSON對象並將其轉換。我想將它插入到我們的數據庫中。但是現在我很困惑,我不知道這是webSql還是SQLite。有人可以澄清嗎?它會在設備上作爲SQLite還是作爲WebSql工作?

編輯:如果您在將來尋找這個問題,謹慎行事:技術發生了很大變化,indexedDB支持正在增長,還有許多其他選項,如Lawchair等。在使用任何東西之前做一點研究!

回答

6

HTML 5有這個數據庫的實現,並通過將Sql Lite數據庫嵌入到瀏覽器來完成實現。

瀏覽器的Chrome和Safari瀏覽器在那裏實現了使用sqlLite命名爲websql的Html5數據庫,但是當我聯繫時,Mozilla沒有實現Websql,而是實現了索引數據庫。

更好的選擇我認爲是使用Backbone.js或Lawnchair,儘管它們在內部都使用websql,但是API爲你包裝了所有東西。

希望這會有所幫助。

+0

是的,這有助於很多澄清。由於移動兼容性,IndexedDB現在對我們來說不是一個選擇。但我正在看看Lawnchair。謝謝,Varun! – Malavos

7

我會建議去WebSQL。該詳細原因是如下所述:

讓我們繼續前進,並考慮3個大平臺,你將使用PhoneGap的去:

  • IOS:的WebSQL - SQLite的 - 部分支持
  • Android:WebSQL - 支持SQLite的 - 完全支持
  • 的Windows:的WebSQL - 不被支持SQLite的 - 不被支持

因此理想情況是這樣的 - 你有Windows了,你換建立一個WebSQL插件[不可靠],在此之上你包裝了一個SQLite插件[非常不可靠] 。

因此 - 現在是您的呼叫。即使你正在製作phonegap應用程序,它們意味着要快,創建一個堆棧而不是另一個堆棧,肯定會讓它變慢。

+2

WebSQL已被棄用。 http://programmers.stackexchange.com/questions/220254/why-is-web-sql-database-deprecated –