Backbone 性能 - 每个模型一个视图的集合或整个集合只有一个视图
Backbone Performance - Collection with a view per model or only one view for the whole collection
如果有一个包含 50 个模型的集合,我似乎有 2 个主要选项来呈现显示 50 个模型的列表:
- 选项 1: 为每个模型创建一个特定的 "item view" 并将这些视图附加到主 "list view"。这将提供每个 "item view" 和每个模型之间的直接关系,将是实用的并且符合 Backbone 理念
- 选项 2 : 只有一个 "list view" 渲染列表 "data-attributes" 帮助在给定列表项上发生事件时获取相应的模型.
我明白 选项 1 以更好的方式利用 Backbone 但是我 关心事件侦听器的数量 使用此选项。如果每个项目我有 4 个事件必须监听,这将意味着我的列表中将有 4x50=200 个事件监听器……与选项 2 的 4 个(委托的)事件监听器相比。
鉴于我想将 Backbone 用于 cordova 应用程序,哪个选项最合适?
也许在那种情况下使用 "mixed" 方法会很实用。每个模型的视图,但事件侦听器仅在顶部列表视图中,然后将进一步委托它们。这减少了 DOM 元素上的事件侦听器。
尽管如此 - 我只会在您需要额外的功能(例如呈现和处理编辑表单)时,或者当单个项目可能会更改以使其需要经常重新呈现时才使用逐项视图.如果不是这种情况,请使用单个列表视图并让它处理事件。
如果有一个包含 50 个模型的集合,我似乎有 2 个主要选项来呈现显示 50 个模型的列表:
- 选项 1: 为每个模型创建一个特定的 "item view" 并将这些视图附加到主 "list view"。这将提供每个 "item view" 和每个模型之间的直接关系,将是实用的并且符合 Backbone 理念
- 选项 2 : 只有一个 "list view" 渲染列表 "data-attributes" 帮助在给定列表项上发生事件时获取相应的模型.
我明白 选项 1 以更好的方式利用 Backbone 但是我 关心事件侦听器的数量 使用此选项。如果每个项目我有 4 个事件必须监听,这将意味着我的列表中将有 4x50=200 个事件监听器……与选项 2 的 4 个(委托的)事件监听器相比。
鉴于我想将 Backbone 用于 cordova 应用程序,哪个选项最合适?
也许在那种情况下使用 "mixed" 方法会很实用。每个模型的视图,但事件侦听器仅在顶部列表视图中,然后将进一步委托它们。这减少了 DOM 元素上的事件侦听器。
尽管如此 - 我只会在您需要额外的功能(例如呈现和处理编辑表单)时,或者当单个项目可能会更改以使其需要经常重新呈现时才使用逐项视图.如果不是这种情况,请使用单个列表视图并让它处理事件。