簡體   English   中英

如何同步Web SQL數據庫

[英]how to sync web sql database

我正在使用ruby on rails開發網站。 我希望我的網站可以離線使用。 為此,我正在使用Web SQL數據庫。 我想知道如何同步在線和離線數據庫。 離線數據庫由javascript創建。 這些是我嘗試過的幾件事。 為了顯示數據庫的內容,我將數據放入控制器中的ruby對象中,如圖所示

  @contacts = Contact.order("contacts.position ASC")

我試圖在視圖文件中的javascript中訪問此對象,如下所示

<script type="text/javascript">

var js_obj = <%= @contacts.to_json %>;

</script>

這是正確的方法嗎? 我如何查看js_obj變量中的數據

我也會為definitley提供indexedDB的后備功能,因為更多的瀏覽器將實現它(即9,Chrome等)

我討厭內聯腳本。 話雖這么說,在使用脫機數據庫的情況下,通過返回.to_json的方法向控制器發出ajax請求本身是不可行的。 而不是使用javascript變量並假設您正在使用已棄用的Web SQL數據庫,因為它們當前(並且奇怪地)是離線db的最佳支持標准,所以我將在腳本中使用類似的內容(請原諒我可憐的sql,並保持介意其正在進行的工作)。 到目前為止,代碼無法正常工作,但我認為這個想法很合理。

http://jsfiddle.net/Nevraeka/hvT6u/5/

有一個名為persistence.js( persistencejs.org )的項目,它是一個具有與數據庫無關的抽象的javascript對象數據庫映射器。 這樣,您不必將應用程序限制為WebSQL數據庫,例如,您還可以(使用相同的代碼)支持本地存儲的使用。

他們還具有一個名為persistence.sync的插件,該插件可將遠程數據庫與服務器數據庫同步。 他們有一個后端示例,但是是為node.js編寫的。 但是,您可以按照他們的說明為Rails制作一個。 Rails服務器端應該是這樣的

另外,如果您決定使用此庫,則應閱讀文檔中提到的限制:

  • 同步庫按每個對象的粒度進行同步。 它不會按屬性保留准確的更改,因此可能會引入需要解決的沖突
  • 它不同步多對多關系
  • 錯誤處理未實現
  • 不支持刪除,但是也許您可以使用“已刪除”標志來解決此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM