我正在研究實時JavaScript應用程序,要求對數據庫進行的所有更改都是鏡像立即在JavaScript中使用,反之亦然。正在同步數據庫和Javascript
現在,當在JavaScript中進行更改時,我對我的API進行ajax調用,並對DOM進行相應的更改。在服務器上,API處理請求,並通過使用PubNub向其他當前JavaScript用戶發送推送並進行更改完成。如果它錯過了推送,我還包括一個與JavaScript順序相關的changeID,可以重新同步整個數據集。這裏是推的一個例子:
{
"changeID":"2857693",
"type":"update",
"table":"users",
"where":{
"id":"32"
},
"set":{
"first_name":"Johnny",
"last_name":"Applesead"
}
}
JavaScript時得到這個變化,它會更新本地存儲,並基於該表正被改變,則相應的DOM變化。 請記住,我的問題不是更新DOM,而是將數據庫中的數據快速無縫地同步到JavaScript。
通過這個,我不禁想到這是一個非常複雜的解決方案,應該是相當簡單的。我錯過了一個難題? 如何將多個JavaScript客戶端與MySQL數據庫無縫同步?
「通過這次去,我不禁想,這是一個非常複雜的解決方案的東西,應該是相當簡單的。」 - 這是一廂情願的想法。基於**完全不同的低級模型(關係與導航/分層),保持兩個數據集在網絡中同步,這是涉及許多移動部件的難題。考慮只是「透明地」在數據庫模型和對象模型之間進行轉換需要一個ORM框架 - 一個複雜而且總是泄漏的抽象。你基本上是在用Javascript實現(部分)ORM庫。 – millimoose
@millimoose,你有一個深思熟慮和有效的觀點。我想我的樣本和提供的障礙一樣簡單。感謝您的反饋意見! – Jonathan