2016-03-03 108 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。你達人! –

相關問題