1

Backbone 没有提供任何关于如何构建应用程序的明确模式。我现在遇到一些困难。在下图中,我在视觉上以一种简化的方式,描述了我想要得到的东西。

我有一个任务清单。我希望在恰好具有相同截止日期的任务之后列出截止日期。日期也按时间顺序排列。

我决定采取的一种方法是:

  • 日期集合和每个日期的视图
  • 每个任务的任务集合和子视图(父视图是日期视图)

在您看来,这是解决问题的好方法吗?

保持更新时的潜在问题:

  • 如果我更改日期,我希望日期容器重新定位,以便它们按时间顺序排列(重新获取所有日期集合?
  • 如果我更改任务的截止日期,我希望任务移动到正确的日期容器(删除其视图并重新获取所有任务集合?
  • 如果另一个用户更改了我希望它反映的任务(获取适当的操作吗?

在此处输入图像描述

4

1 回答 1

2

这是解决问题的好方法吗?

是的!:CollectionView -> (n)ModelViews(根据需要深度)

如果我更改日期,我希望日期容器重新定位自身,以便它们按时间顺序排列(重新获取所有日期集合?)

您总是必须将更改发送到服务器,但您不需要重新获取任何内容,您已经拥有数据,您只需重新渲染即可。这种重新渲染的优化取决于很多细节。

如果我更改任务的截止日期,我希望任务移动到正确的日期容器(删除其视图并重新获取所有任务集合?)

同样,您不需要询问数据。只需从实际的 DateContainer 集合中移除更改后的 Task 并将其添加到新 DateContainer 的集合中即可。使 DateContainers 响应此add/remove事件。

如果另一个用户更改了我希望反映的任务(是否获取适当的操作?)

嗯,这是一个非常开放的问题。正如您所说,您可以每 X 秒重新获取整个数据。或者你可以在你的 API 中实现一个优化的updated_elements请求,并每隔 X 秒请求一次。或者你可以通过 WebSockets 的方式。

于 2012-08-29T13:09:05.873 回答