成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

提高Firefox的innerHTML()的性能

2010-09-08 11:36:03來源:斷橋殘雪部落格作者:

Firefox下innerHTML在操作量大了以后性能下降很厲害,有人寫了個提高innhtml性能的代替方法

Firefox 下innerHTML在操作量大了以后性能下降很厲害,有人寫了個提高innhtml性能的代替方法:

JavaScript Code復制內容到剪貼板
  1. function replaceHtml(el, html) {  
  2. var oldEl = typeof el === "string" ? document.getElementById(el) : el;  
  3. /*@cc_on // 原始的 innerHTML 在 IE 中的性能好一點 
  4. oldEl.innerHTML = html; 
  5. return oldEl; 
  6. @*/  
  7. var newEl = oldEl.cloneNode(false);  
  8. newEl.innerHTML = html;  
  9. oldEl.parentNode.replaceChild(newEl, oldEl);  
  10. /* 一旦我們從 DOM 上移除老的元素,則返回新的元素引用。*/  
  11. return newEl;  
  12. };  
可以直接用el=replaceHtml(el, newHtml)代替el.innerHTML=newHtml。

速度到底有多大提升,還得測試說話。作者提供了一個測試頁面:http://stevenlevithan.com/demo /replaceHtml.html

此方法大大提高了 innerHTML 在 Firefox 和 Safari 上的性能。replaceHtml() 在 Firefox 2.0.0.6 里 destroy 與 replace 的速度各快了 473 倍以及 50 倍。而在 Safari 3.0.3 beta 上則是 create 100 倍,replace 50 倍。

對于 Opera 也依然有性能提高,只是提高幅度沒有上面兩種瀏覽器驚人而已,

唯在 IE 中,則原始的 innerHTML 的方法更效率點。
關鍵詞:JavaScript

贊助商鏈接:

主站蜘蛛池模板: 辽源市| 贡觉县| 通渭县| 和龙市| 安康市| 玉屏| 吉安县| 安乡县| 萝北县| 天水市| 璧山县| 刚察县| 新沂市| 喀喇| 安化县| 富阳市| 河源市| 龙江县| 郯城县| 封丘县| 玉树县| 会理县| 弥勒县| 莱州市| 景泰县| 曲阳县| 喀喇沁旗| 文登市| 东光县| 望城县| 屏边| 黄骅市| 涡阳县| 陵川县| 佛坪县| 吴忠市| 西丰县| 汾阳市| 太白县| 利津县| 建瓯市|