rest - 使用backbone.js进行开发,如何检测多个用户(浏览器)尝试更新的情况?

标签 rest backbone.js

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

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

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

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

最佳答案

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

关于rest - 使用backbone.js进行开发,如何检测多个用户(浏览器)尝试更新的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14051958/

相关文章:

collections - Backbone .js:将元素添加到集合而不重新渲染所有集合

javascript - 使 localStorage 中的 Backbone.js 项目独一无二?

rest - 如何防止 SQL 注入(inject)并提高 REST API 的安全性?

Azure 数据工厂 REST API 返回无效的带分页的 JSON 文件

java - 使用 Spring MVC 创建服务时出错

javascript - Backbone.js 事件触发器

javascript - 我无法更新主干中的收藏

api - Flutter 应用程序后端有哪些选项?

ios - Alamofire - 使用照片时图像上传失败

javascript - Backbone.js 路由器 url 包含参数