2016-03-03 47 views
2

我有一个需要很长时间才能运行的JavaScript页面。我已经使用Firefox分析了代码,以下是输出。如何优化下列设置元素的CSS属性的JavaScript

enter image description here

正如你可以看到我已经搬到消费线的方法_doStuff,这似乎做了很多Graphic相关的东西的时间。以下是_doStuff方法的内容。

_doStuff:function(tds,colHeaderTds,mainAreaTds){ 
     for (i = 1; i < tds.length; i++) { 
      if (colHeaderTds[i].offsetWidth <= tds[i].offsetWidth) { 
       colHeaderTds[i].style.width = tds[i].offsetWidth + "px"; 
      } 
      mainAreaTds[i].style.width = colHeaderTds[i].offsetWidth + "px"; 
      } 

    }, 

我假定耗时Graphics部分是由于设定的元件的宽度。这个观察是否正确?我该如何优化代码,以便加载页面所需的时间更少?

回答

1

你的循环的每个迭代JS改变你的DOM树和力量的浏览器重新绘制它。

的好的做法是让你的元素的副本,修改它的循环,循环后更改前元素的.innerHTML

关于主题重绘的更多阅读内容here

+0

感谢Bro。你达人! –

相关问题