javascript – 为什么这个jquery这么慢?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么这个jquery这么慢?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在使用一个jquery插件来修复我生成的html表上的标题.不幸的是,插件性能非常慢,我把它缩小到以下代码

  1. var $tbl = $(this);
  2. var $tblhfixed = $tbl.find("thead");
  3. $tblhfixed.find("th").each(function ()
  4. $(this).css("width",$(this).width());
  5. });

在一张有2,000行的桌子上花费大约40秒钟.有谁知道为什么它如此缓慢,更重要的是如何让它更快?我已经尝试了很多其他插件,这是唯一一个按照我想要的方式工作的插件.谢谢你的帮助

最佳答案
罪魁祸首可能是.each.

原因是当你使用.each而不是普通循环进行迭代时,你会为每次迭代调用一个函数.在这种情况下,函数调用具有相当大的开销,因为必须为每次迭代创建一个新的调用堆栈.

使其变化更快

  1. $tblhfixed.find("th").each(function ()
  2. $(this).css("width",$(this).width());
  3. });

  1. var elms = $tblhfixed.find("th");
  2. for(var i=0,elm;elm = elms[i];i++) {
  3. elm.css("width",elm.width());
  4. }

猜你在找的jQuery相关文章