我正在开发一个实时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数据库同步?
答案 0 :(得分:0)
几个月后才更新问题 - 我最后坚持使用这种方法,效果很好。
答案 1 :(得分:0)
我知道这是一个老问题,但我花了很多时间研究这个完全相同的问题,尽管这是一个完全不同的背景。我正在创建一个Phonegap应用程序,它必须脱机工作并在以后同步。
对我来说,最大的启示是我真正需要的是浏览器和服务器之间的版本控制,这就是我所做的。将数据存储在这些集合中的sets
和keys
中,并单独存储所有这些数据。当出现问题时,可以使用冲突解决回调来解决它。
我只是把项目放在GitHub上,它的URL是https://github.com/forbesmyester/SyncIt