用什么技术来实现Backbone.sync的批量插入/更新?将Backbone.sync扩展到批量同步?
8
A
回答
4
我想这取决于你的使用场景,以及你想改变多少调用代码。我认为你有两个选择:
选项1:不改变客户端(呼叫)代码
奇怪的是注释source for Backbone.sync给“配料”作为一个可能的原因重写sync
方法:
使用setTimeout将快速更新批量处理为单个请求。
实际上不保存同步,而是将请求添加到队列中,并且每隔一段时间只进行一次批量保存。 _.throttle
或_.delay
可能会帮助您。
选项2:更改客户端代码
或者,而不是调用您的模型save
,你可以save
方法添加某种到集合。你必须跟踪哪些模型实际上被修改了,因此需要更新,因为据我所知,Backbone只知道它们是否是新的(但我可能是错的)。
1
这里是我是如何做到的
Backbone.originalSync = Backbone.sync;
Backbone.sync = function (method, model, options) {
//
// code to extend sync
//
// calling original sync
Backbone.originalSync(method, model, options);
}
正常工作对我来说,我用它来控制出来的任何模型或集合
相关问题
- 1. 批量更新扩展
- 2. 批量URL扩展代码
- 3. Chrome扩展:让chrome.tabs.query同步
- 4. 批量变量内部扩展
- 5. 批量重命名异构文件扩展名到一个扩展名
- 6. 批量重命名扩展为小写
- 7. 批量延时扩展不起作用
- 8. Windows批处理文件扩展变量
- 9. 批量重命名文件扩展名
- 10. Google chrome扩展和批量命令
- 11. 批量:IF和延迟扩展
- 12. 批量添加文件扩展名
- 13. 批量更改文件扩展名
- 14. rails 5 spree 3.2批量定价扩展
- 15. 批量查找文件扩展名
- 16. 批量重命名相同扩展名的多个文件
- 17. 将具有不同文件扩展名的批量重命名文件扩展为1分机
- 18. 如何同步Chrome扩展选项
- 19. 同步Ajax Toolkit日历扩展器
- 20. 与Chrome扩展同步通信
- 21. 为“同步”移动游戏扩展Minimax
- 22. 无效扩展同步订阅
- 23. 与Safari同步 - SFSafariViewController的扩展
- 24. WinDbg扩展步进
- 25. 批量删除文件扩展批处理文件
- 26. Userena - 将轮廓模型进一步扩展到两个不同的模型
- 27. Javascript - BackboneJS - Backbone.sync覆盖 - YDN - 异步错误
- 28. 将大量数据同步到s3(aws)
- 29. 反应扩展:转换同步订阅异步
- 30. Chrome扩展webRequest异步调用的同步行为
的如果我使用'_.throttle'或'每个Ajax请求_.delay',如何在单个Ajax请求中发送多个'更新'?模型阵列? – Henry
有多种方式,实际上它取决于您的数据访问模式。这里有一个讨论:http://stackoverflow.com/questions/411462/restful-way-to-create-multiple-items-in-one-request – stusmith