0

たくさんのスロットを持つ在庫システムを作ろうとしていますが、何か間違っていると思います。そのような各要素で「.draggable()」を呼び出すのと同じですか、それともすべての要素をグループ化してからそれらすべてに適用する方が高速ですか? もしそうなら、どうすればそれを行うことができますか? これが私のコードです:

 for (x=0; x<100; x++){

    var $slots = $('<div class="slot">'+(x+1)+'</div>').appendTo('#inventory').draggable();

 }

前もって感謝します、

タイスコーピオン

4

1 に答える 1

0

テストを実行するだけです:

var start = new Date().getTime();

for (x=0; x<1000; x++){

    $('<div class="slot">'+(x+1)+'</div>').appendTo('#inventory').draggable();

}
var time_spent = new Date().getTime() - start;
$('#results').append("Time spend if draggable applied on each slot: " + ( time_spend / 1000 ) + "s");

start = new Date().getTime();
for (x=0; x<1000; x++){

   $('<div class="slot">'+(x+1)+'</div>').appendTo('#inventory');

}
$('.slot').draggable();
time_spent = new Date().getTime() - start;
$('#results').append("<br/>Time spend if draggable applied on all slots: " + ( time_spend / 1000 ) + "s");

http://jsfiddle.net/gael/4KSmd/1/

x = 0 ~ 10000 の結果:

各スロットにドラッグ可能な場合の所要時間: 12.957 秒

すべてのスロットにドラッグ可能な場合の所要時間: 140.269 秒

于 2012-11-07T02:13:22.587 に答える