Backbone:模型更改的许多小请求与一个集合同步?

时间:2013-06-14 15:21:22

标签: backbone.js

当某些操作 - 在Backbone.js中更改多个模型时,一般的良好做法是什么:

  1. 为每个mode.save()
  2. 触发多个PUT请求
  3. 同步整个集合的单一请求

3 个答案:

答案 0 :(得分:2)

如果更改的模型的数量大于1 - 肯定它应该是第二项。

答案 1 :(得分:1)

我喜欢第一个选项,但我建议您实现PATCH行为(仅发送更新的属性)以使请求尽可能小。此方法为您提供了更加原生的“自动保存”感觉,就像Google文档一样。当然,这完全取决于您的应用以及您正在做的事情。

答案 2 :(得分: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方法来仅更新特定元素的已更改属性,从而节省带宽。