这是我的代码:
class ActivityView extends App
onInitialize: ->
@activities = new Activities
@activities.on 'add remove', @_renderActivityItems, @
当我从服务器端点检索数据时,响应可能包含十几个数据点。但是,每当将每条数据添加到集合中时,都会添加'事件被触发,函数_renderActivityItems
被多次调用。
这似乎非常昂贵,因为该函数实际上呈现了集合中的所有元素。
最好在将所有元素添加到集合后调用_renderActivityItems
函数。
如何通过骨干事件实现它?
答案 0 :(得分:2)
在Backbone 1.2.0中添加了更新事件
添加了"更新"在任何数量的模型之后触发的事件 添加或删除集合。方便重新渲染事物列表 没有去抖动。
"更新" (集合,选项) - 任何事件后触发的单个事件 已从集合中添加或删除了多个模型。
答案 1 :(得分:1)
如果您使用Collection.fetch()
方法初始化集合,请添加选项{silent: true}
以防止侦听器触发提取。