2

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

4

2 回答 2

0

只是为了在几个月后更新这个问题 - 我最终坚持使用这种方法并且效果很好。

于 2013-01-11T21:12:33.963 回答
0

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

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

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

于 2013-06-02T18:52:27.910 回答