javascript 處理HTML元素必須避免使用的一種方法
更新時間:2009年07月30日 18:50:34 作者:
我們在編寫前臺頁面的時候,可能經常會用到“javascript+數據”生成頁面元素的方法,但當我們要處理的數據量較大,導致頁面需要展現過多的控件的時候,頁面的響應速度也會直線下降
我們可能往往會去排查問題的緣由,其實,在排查掉冗余的循環(huán)和精簡了控件數量后,我們發(fā)現性能還是不樂觀,于是繼續(xù)排查,一個偶然的修改,卻大大改善了效率,就是類似如下的修改:
修改前:
objDiv.innerHTML += ‘<img id=”picture” src=”back.gif”>';
修改后:
var imga = document.createElement("img");
imga.setAttribute("src","back.gif");
imga.setAttribute("id","picture");
objDiv.appendChild(imga);
之前可能因為書寫的便利,所以沒有采用創(chuàng)建頁面元素,再分別賦值,最后進行嵌套的方法,而是直接通過字符串賦值innerHTML的方法,這種方法就是比較簡單和便捷,但是在性能方面還是有所損失的,因為這中間必然涉及到一個將字符串轉換為正確的頁面控件的的一個過程,這其中的性能損失可能比較大,所以造成了頁面相應的遲緩。
修改前:
復制代碼 代碼如下:
objDiv.innerHTML += ‘<img id=”picture” src=”back.gif”>';
修改后:
復制代碼 代碼如下:
var imga = document.createElement("img");
imga.setAttribute("src","back.gif");
imga.setAttribute("id","picture");
objDiv.appendChild(imga);
之前可能因為書寫的便利,所以沒有采用創(chuàng)建頁面元素,再分別賦值,最后進行嵌套的方法,而是直接通過字符串賦值innerHTML的方法,這種方法就是比較簡單和便捷,但是在性能方面還是有所損失的,因為這中間必然涉及到一個將字符串轉換為正確的頁面控件的的一個過程,這其中的性能損失可能比較大,所以造成了頁面相應的遲緩。

