2013-08-09 2 views
2

В YUI3 (3.11) добавление 100 элементов к моему столу занимает 800 мс. Каковы некоторые способы оптимизации этого (и почему это так медленно в первую очередь)?YUI datatable performance

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

Какую версию YUI вы используете? – juandopazo

ответ

1

DataTable.data использует YUI ModelList внутренне для хранения данных, который превращает все ваши строки в модель и пожары в add события, когда вы добавляете их к столу. В связи с этим в настоящее время не предполагается, что сразу несколько строк добавляются к нему.

Лучший способ решить вашу проблему - это, вероятно, сброс таблицы только теми строками, которые вы хотите показать. Вы можете сделать это, выполнив:

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

Это позволит вам добавить данные в вашей DataTable с гораздо меньшими затратами, и предотвратить срабатывание этих дополнительных событий.

+0

до 42 мс - спасибо. – RParadox