2

我对backbone.js(以及带有javascript的MVC)非常陌生,并且在阅读有关backbone.js的一些资源以在我的项目中采用它时,我现在有一个问题:如何检测多个用户(浏览器)何时尝试更新? (并阻止它?)

我的项目是一个为想要创建和分发自己的调查的用户编辑调查/民意调查的工具。到目前为止,我的 Web 应用程序维护了一个由浏览器触发的编辑命令列表,将其发送到服务器,然后服务器进行批量更新。

我所做的是,每个调查都维护一个版本号,浏览器必须使用该版本号请求更新,如果请求的版本号与服务器中的版本号不匹配,则请求失败,用户必须重新加载他的页面(你知道,实现并发编辑对每个人来说都不容易)。当然,当浏览器更新成功时,它会从服务器获取新的版本号作为ajax响应,并且只有当它过去的更新请求完成时,一个浏览器才能向服务器请求更新。

现在,我对 RESTful API 和 MV* 模式很感兴趣,但很难解决这个问题。什么是最好的/常见的方法?

4

1 回答 1

2

有一个常见的技巧,而不是使用版本,在您的数据库中使用 TIMESTAMPS,然后尝试 UPDATE WHERE timestamp = model.timestamp。如果它返回零结果计数 - 使用适当的 HTTP 409(冲突)响应并要求用户在 save() 错误回调中更新页面。您甚至可以使用本地存储来合并更改,并并排比较非等效项。

于 2012-12-27T16:16:08.883 回答