我有一个循环,它遍历表 cel 中的所有 div,类为“GridCell”。在某些情况下,当调整网格或列的大小时,这需要发生。
我扩展了行数和列数,以查看更多时间差异,现在循环大约为 750 毫秒。
但我不明白的是,“只是循环的一部分”要快得多。请参阅以下三个循环。第一个是缓慢的。仅执行第一个循环的一部分的第二个和第三个循环非常快。
//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);
});
所以一条线,只有 60 或 15 毫秒,但两者加起来是 750。这有什么区别?
ps 执行循环的顺序无关紧要。第一个循环总是比其他循环慢很多,最后执行该循环时也是如此。