【问题标题】:Backbone Performance - Collection with a view per model or only one view for the whole collection骨干性能 - 每个模型一个视图或整个集合只有一个视图的集合
【发布时间】:2015-07-08 14:14:14
【问题描述】:

如果有一个包含 50 个模型的集合,我似乎有 2 个主要选项来呈现显示 50 个模型的列表:

- 选项1:为每个模型创建一个特定的“项目视图”并将这些视图附加到一个主“列表视图”。这将提供每个“项目视图”和每个模型之间的直接关系,实用且符合 Backbone 理念

- 选项 2 :只有一个“列表视图”呈现带有“数据属性”的列表,有助于在给定列表项上发生事件时获取相应的模型。

我了解选项 1 以更好的方式利用 Backbone,但是我担心使用此选项的事件侦听器的数量。如果每个项目我有 4 个事件必须监听,这意味着我的列表中将有 4x50=200 个事件监听器......与选项 2 的 4 个(委托)事件监听器相比。

鉴于我想将 Backbone 用于 cordova 应用程序,哪个选项最合适?

【问题讨论】:

  • 运行一些测试并对其进行基准测试。

标签: performance backbone.js backbone-views backbone.js-collections backbone-model


【解决方案1】:

也许在这种情况下,使用“混合”方法是可行的。每个模型的视图,但事件侦听器仅在顶部列表视图中,然后将进一步委托它们。这减少了 DOM 元素上的事件侦听器。

尽管如此 - 我只会在您需要额外功能(例如渲染和处理编辑表单)时,或者当单个项目可能被更改以致它们需要经常重新渲染时使用每个项目视图。如果不是这种情况,请使用单个列表视图并让它处理事件。

【讨论】:

  • 感谢 Exinferis。我将尝试实施这种混合方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 1970-01-01
  • 2013-06-14
相关资源
最近更新 更多