javascript – 如何优化此jquery循环的执行时间?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何优化此jquery循环的执行时间?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1189字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 如何优化此jquery循环的执行时间?](/upload/InfoBanner/zyjiaocheng/800/613afe61e7924560aaf31594384333c6.jpg)
我有一个循环通过类’GridCell’的表格cel中的所有div.
当调整网格或列的大小时,需要在某些情况下发生这种情况.
我扩展了行数和列数,以查看更多时间差异,现在循环大约为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.这有什么区别?
附:我执行循环的顺序无关紧要.第一个循环总是比其他循环慢得多,也就是在最后执行该循环时.
解决方法:
// collect the widths from the first row only
var widths = $('table.Grid tbody tr:first-child td.GridCell').map(function(idx) {
return $(this).width() - 3;
// or use:
// return this.clientWidth - 3;
// if you're not targeting IE <= 7
});
// apply the widths to each div
$('table.Grid tbody td.GridCell > div').each(function(idx) {
this.style.width = widths[idx % widths.length] + 'px';
});
内容总结
以上是互联网集市为您收集整理的javascript – 如何优化此jquery循环的执行时间?全部内容,希望文章能够帮你解决javascript – 如何优化此jquery循环的执行时间?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。