1

我提供了一个表格供用户上传自己的数据。我使用 ajax-form-submit 然后解析数据以创建大量模型(上传的 csv 中每行一个)。

现在,我想将模型创建到预定义的集合中。

我可以使用 add 来获取模型数组,但不幸的是,它不会在服务器端发送 PUSH。我知道我可以为每个模型迭代和创建 .create 但假设我有 10k 个模型,它会创建 10k 个调用。听起来不合理。我错过了什么吗?

另一种方法是在服务器上接受多个模型并使用 .ajax 调用,然后手动添加到集合中以进行 UI 渲染。

寻找最佳路线。谢谢。

4

2 回答 2

2

Backbone 和 REST 根本无法涵盖所有​​实际用例,例如您的批量创建示例。他们也没有批量删除的官方模式,这也非常普遍。我对他们为什么拒绝解决这些极其常见的用例感到困惑,但无论如何,你在这里留给你自己的良好判断。所以我建议在你的集合中添加一个bulkSaveorimport方法。这应该将带有 CSV 表单数据的 AJAX POST 请求发送到服务器,服务器应该保存信息,如果一切顺利,返回新创建的模型的 JSON 数组。您的集合应该在 POST 响应中获取该 JSON 数组并将其传递给resetparse以及如果您需要特殊解析)。

绝对不要为每个模型(CSV 中的行)发出 POST 请求,尤其是如果您计划拥有 10K 个模型。但是,需要明确的是,如果您的 UI 显示基于每条记录的实时进度和错误处理(例如,保存了 65 个中的 23 个),那么为几十个模型执行该模式并不是完全糟糕的。

于 2012-05-28T17:30:59.943 回答
0

我喜欢@PeterLyons 的务实方法,但另一个想法可能是尝试将您的非 REST功能转换为REST功能。

你想要的是一次创建一堆模型。REST 不允许同时创建多个资源。REST 喜欢一次创建一个资源。

Bulk没问题,我们用它自己的 url 和它自己的POST动词创建一个新的资源调用。此attributes模型的 是您要创建的模型数组。

使用这种方法,您还可以解决未来的功能,例如一次修改删除多个模型。

现在您只需要弄清楚如何将模型数组与这个新模型相关联,以及如何使Bulk.toJSON方法正确响应。

于 2012-05-28T18:16:24.940 回答