jQuery を使用してスプレッドシート エディターを構築していますが、大きなテーブルでパフォーマンスの問題が発生しています。テーブルには多くのデータ セットが含まれており、1 つをクリックすると、他のセットの最初のセルにアイコンが追加されます。コードは次のようになります。
$('.click_icon').remove();
for (var i = 0; i < datasets.length; i++) {
var first_cell = $('td.content[dataset="' + datasets[i].id + '"]').filter(':first');
if (in_group(datasets[i].id)) {
first_cell.append('<i class="icon-remove click_icon remove_group" style="float:right"></i>');
} else {
first_cell.append('<i class="icon-magnet click_icon add_group" style="float:right"></i>');
}
500 以上のデータセットの場合、これには約 5 秒かかります。in_group()
セットが選択されたデータセットのグループにあるかどうかをチェックする小さな関数です。
クリックする前にアイコンを作成して使用show() hide()
する方が速いかどうか疑問に思っていましたか? 他のアイデアはありますか?
UbuntuでChromiumを使用しています。(バージョン 28.0.1500.52 Ubuntu 12.04)