クラス「GridCell」のテーブルセル内のすべてのdivを通過するループがあります。これは、グリッドまたは列のサイズが変更された場合に発生する必要があります。
行と列の数を増やして、より多くの時間差を確認しました。現在、ループは約750ミリ秒です。
しかし、私が理解していないのは、「ループの一部」の方がはるかに高速であるということです。次の3つのループを参照してください。最初は遅いです。最初のループの一部のみを実行する2番目と3番目のループは非常に高速です。
//Around 750 ms
$('table.Grid tbody td.GridCell > div').each(function() {
var width = $(this).parent().width();
$(this).css('width', width - 3);
});
//Around 60 ms
$('table.Grid tbody td.GridCell > div').each(function() {
var width = $(this).parent().width();
});
//Around 15 ms
$('table.Grid tbody td.GridCell > div').each(function() {
$(this).css('width', 100);
});
つまり、1行はわずか60または15ミリ秒ですが、2つを合わせると750です。この違いは何ですか。
psループを実行する順序は関係ありません。最初のループは、そのループが最後に実行されたときも、常に他のループよりもはるかに遅くなります。