当某些操作更改 Backbone.js 中的多个模型时,一般的良好做法是什么:
- 为每个触发多个 PUT 请求
mode.save()
- 同步整个集合的单个请求
如果更改模型的数量大于 1 - 肯定应该是第二项。
通常,良好的 REST api 实践似乎建议您应该使用update, save, create, delete
单个持久元素实例。事实上,你会发现一个Backbone.Collection
对象并没有实现这些方法。
此外,如果您为数据访问点使用标准 URI 方案,您会注意到集合没有唯一 ID。
GET /models //to get all items,
GET /models/:id //to read an element,
PUT /models/:id //to update an element,
POST /models/:id //to create an element,
DELETE /models/:id //to delete an element.
如果您需要一次更新服务器上集合的每个模型,也许您需要询问原因,并且可能需要重新考虑模型结构。也许应该有一个单独的模型来保存该公共信息。
正如 Bart 所建议的,您可以实现一种PATCH
方法来仅更新特定元素的更改属性,从而节省带宽。
我喜欢第一个选项,但我建议您实现 PATCH 行为(仅发送更新的属性)以使请求尽可能小。此方法为您提供更原生的“自动保存”感觉,就像 Google Docs。当然,这一切都取决于您的应用程序以及您在做什么。