【发布时间】:2012-10-18 16:40:20
【问题描述】:
美好的一天!
最近我进入了主干/需求,并开始学习一些非常酷的东西。我正在尝试了解在获取主干集合时显示加载条/微调器的最佳做法是什么。以下是我发现使用的一些策略,用于触发集合上的 fetch/syncing 事件:
方法 1: 在应用程序启动之前覆盖主干的同步方法,并在该集合上触发“同步”事件
方法 2: 在应用程序启动之前覆盖主干的 fetch 方法,并在该集合上触发 'fetching' 事件
方法 3: 在定义集合时,重写 fetch() 方法并触发“fetching”事件,这样就可以监控任何实例的获取情况
方法四: 有人建议使用事件聚合,这样当视图调用 fetch() 获取集合时,该视图会触发事件。
这是我的情况:
- 假设我有一个收藏 C
- 有 2 个视图 V1 和 V2 可以访问它
- V1 可以在 C 上调用 fetch,但 V2 不能
- 当 C 开始 fetch 时,只有 V2 应该显示一个加载栏,并在 C 上调用 reset() 时将其关闭
- 还有其他视图 V3、V4 等在获取 C 时可能也需要加载栏
显示加载栏的最佳机制是什么,同时保持严格的 MVC 模式完好无损?
选项 1: 视图是否应该监听集合上的“同步”事件?问题:如果调用了其他的 fetch()、save(),可能会显示加载栏
选项 2: 视图是否应该监听集合上的 'fetch()' 事件并采取相应措施?
选项 3: 一个视图在对集合调用 fetch() 时是否应该通知另一个视图?
选项 4:视图应该调用窗口上的获取方法还是事件聚合器?
也欢迎使用其他方法和选项。您的建议和意见将是最好的资源。谢谢。
【问题讨论】:
标签: model-view-controller events backbone.js