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.dataYUI ModelList を内部的に使用してデータを保存します。これにより、すべての行がモデルに変換され、addそれらをテーブルに追加するとイベントが発生します。ただし、現在のところ、一度に多くの行を追加することは意図されていません。

問題を解決する最善の方法は、おそらく、表示したい行だけでテーブルをリセットすることです。次のようにしてそれを行うことができます:

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

これにより、オーバーヘッドを大幅に削減して DataTable にデータを追加し、これらの追加イベントの発生を防ぐことができます。

于 2013-08-10T01:02:24.823 に答える