Javascript 多个destroy()在backbone.js中锁定后端
在for backbone.js中,会发生以下情况:Javascript 多个destroy()在backbone.js中锁定后端,javascript,sinatra,datamapper,backbone.js,Javascript,Sinatra,Datamapper,Backbone.js,在for backbone.js中,会发生以下情况: clearCompleted: function() { _.each(Todos.done(), function(todo){ todo.clear(); }); return false; }, 这将通过向支持应用程序的任何服务发送多个http DELETE请求来删除多个模型。在本例中,b/c没有问题,他们使用的是本地存储解决方案 但是,当我对后端数据库(sqlite/datamapper/sinatra)尝试类似的过程时,它
clearCompleted: function() {
_.each(Todos.done(), function(todo){ todo.clear(); });
return false;
},
这将通过向支持应用程序的任何服务发送多个http DELETE请求来删除多个模型。在本例中,b/c没有问题,他们使用的是本地存储解决方案
但是,当我对后端数据库(sqlite/datamapper/sinatra)尝试类似的过程时,它同时发送多个deletehttp请求这一事实会导致数据库锁定并发回一个错误
你们中有人遇到过这样的事情吗
我可以想出两种解决方法:
-选项2是不可行的。用户可以单击“上一步”或关闭窗口,删除操作将不会完全成功。所以,就这样吧 这使我们必须:
- 修复DB:D中锁的初始问题
- 一次发送要删除的所有ID
至于批量发送删除。这是一个好主意,但它偏离了标准的RESTful控制器。所以你必须自己处理,因为你没有办法做到这一点。您可以在集合上添加deleteAll方法并从那里处理同步(如果您依赖事件,请不要忘记发送事件)。选项2不可行。用户可以单击“上一步”或关闭窗口,删除操作将不会完全成功。所以,就这样吧 这使我们必须:
- 修复DB:D中锁的初始问题
- 一次发送要删除的所有ID
至于批量发送删除。这是一个好主意,但它偏离了标准的RESTful控制器。所以你必须自己处理,因为你没有办法做到这一点。您可以在集合中添加deleteAll方法并从那里处理同步(如果您依赖事件,请不要忘记发送事件)。+1问题和图像:-)谢谢Sean!现在,如果我能找到人来回答我的问题,我将是一个快乐的露营者。问题和图片都是+1:-)谢谢肖恩!现在,如果我能找个人来回答我的问题,我将是一个快乐的露营者。是的。。选择2不好有几个原因。有臭味的同意。至于选项1:影响多种资源真的违反REST哲学吗?如果我想一次删除1000个项目,我真的想打1000个电话吗?就是这样做的?根据你的建议。我已经研究了修复我的初始问题,db锁定和一些有趣的事情。我在开发中使用sqlite实现了数据库锁定。。但当我部署到heroku时,他们的postgres db在多次删除时一点问题也并没有。这显然是一个纯粹的db问题,所以我们会去打猎。谢谢你把我推向正确的方向是的。。选择2不好有几个原因。有臭味的同意。至于选项1:影响多种资源真的违反REST哲学吗?如果我想一次删除1000个项目,我真的想打1000个电话吗?就是这样做的?根据你的建议。我已经研究了修复我的初始问题,db锁定和一些有趣的事情。我在开发中使用sqlite实现了数据库锁定。。但当我部署到heroku时,他们的postgres db在多次删除时一点问题也并没有。这显然是一个纯粹的db问题,所以我们会去打猎。谢谢你把我推向正确的方向。