用什麼技術來實現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