2

在 YUI3 (3.11) 中,向我的表中添加 100 个项目需要 800 毫秒。有什么方法可以优化它(为什么这首先会这么慢)?

data = data.slice(1,100)
data.forEach(function(item){
   data_table.data.add({ 'name': item });
})
4

1 回答 1

1

DataTable.data在内部使用 YUI ModelList 来存储数据,这会将您的所有行转换为模型并add在您将它们添加到表时触发一个事件。但是,由于这个原因,它目前并不意味着一次添加许多行。

解决您的问题的最佳方法可能是仅使用您要显示的行来重置表。你可以这样做:

data = data.slice(1, 100);
data_table.data.reset(data);

这将使您能够以更少的开销向 DataTable 添加数据,并防止触发这些额外的事件。

于 2013-08-10T01:02:24.823 回答