在YUI3(3.11)中,向我的表中添加100个项目需要800毫秒。有什么方法可以优化这个(为什么这首先这么慢)?
data = data.slice(1,100)
data.forEach(function(item){
data_table.data.add({ 'name': item });
})
答案 0 :(得分:1)
DataTable.data
在内部使用YUI ModelList来存储数据,这会将您的所有行转换为模型,并在您将其添加到表时触发add
事件。但是,由于这个原因,它目前并不意味着会立即添加许多行。
解决问题的最佳方法可能是仅使用要显示的行重置表。你可以这样做:
data = data.slice(1, 100);
data_table.data.reset(data);
这样可以减少开销,为DataTable添加数据,并防止触发这些额外事件。