设置Backbone Collection.models与使用Collection.reset

时间:2015-07-09 14:40:38

标签: backbone.js

尝试通过将Collection列表直接传递给Models或使用Collection.reset来尝试实例化6000ms时遇到了性能障碍。使用4800 Models初始化它需要大约Collection.models,每个属性大约有200个属性。这不是很大,所以开始时有点令人惊讶,但是我想通过将models直接设置为Collection.length数组来加快速度,并将length设置为reset

问题,除了初始排序之外,这两种方法之间的区别是什么以及资源花费在哪里?我使用getscore <- function(www0) { require(rvest) require(dplyr) www <- html(www0) boxscore <- www %>% html_table(fill = TRUE) %>% .[[1]] names(boxscore)[3] <- "VG" names(boxscore)[5] <- "HG" names(boxscore)[6] <- "Type" return(boxscore) } 初始化Collection,因此无需删除模型上的事件处理程序或清理任何内容。

使用案例:

尝试显示具有无限滚动的表,其中每一行都是Model,而Collection是行的集合。每行可以有大约200列。这是一个静态表,除了包含复选框的单个列。模特没有做任何事情。

1 个答案:

答案 0 :(得分:2)

收藏品比modelslength更多。

直接分配时,我们绕过了集合定义的任何其他行为(排序,存在检查等)。 reset和构造函数(最终委托给reset)都使用集合的重载set方法来确保添加与集合设计行为一致的新模型。

如果模型始终为reset(即,未单独添加或删除),则直接分配可能没问题,但如果模型不是set,则某些集合功能可能会出现意外行为。