同步数据库和Javascript

时间:2012-11-20 00:46:40

标签: javascript mysql sync

我正在开发一个实时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数据库同步?

2 个答案:

答案 0 :(得分:0)

几个月后才更新问题 - 我最后坚持使用这种方法,效果很好。

答案 1 :(得分:0)

我知道这是一个老问题,但我花了很多时间研究这个完全相同的问题,尽管这是一个完全不同的背景。我正在创建一个Phonegap应用程序,它必须脱机工作并在以后同步。

对我来说,最大的启示是我真正需要的是浏览器和服务器之间的版本控制,这就是我所做的。将数据存储在这些集合中的setskeys中,并单独存储所有这些数据。当出现问题时,可以使用冲突解决回调来解决它。

我只是把项目放在GitHub上,它的URL是https://github.com/forbesmyester/SyncIt