当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 通过 Dom 方法提高 innerHTML 性能

Javascript
MooTools教程(3):数组管理DOM元素
MooTools教程(4):函数和MooTools
MooTools教程(5):事件处理
MooTools教程(6):操纵HTML DOM元素
MooTools教程(7):设置和获取样式表属性
MooTools教程(8):输入过滤-数字
MooTools教程(9):输入过滤-字符串
MooTools教程(10):Fx.Tween渐变
MooTools教程(11):Fx.Morph、Fx选项和Fx事件
MooTools教程(12):Drag.Move来实现拖放
MooTools教程(13):正则表达式
MooTools教程(14):定时器和Hash对象
MooTools教程(15):滚动条(Slider)
浏览器对Cookie的限制
图片不间断滚动的特效代码详细讲解
Javascript教程:拖放效果研究
不唐突的JavaScript
JavaScript教程:图片切割效果
认识AJAX了解AJAX优点缺点和运用
网页投票系统中的限制

Javascript 中的 通过 Dom 方法提高 innerHTML 性能


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 442 ::
收藏到网摘: n/a

此方法大大提高了 innerHTML 在 Firefox 和 Safari 上的性能。replaceHtml() 在 Firefox 2.0.0.6 里 destroy 与 replace 的速度各快了 473 倍以及 50 倍。而在 Safari 3.0.3 beta 上则是 create 100 倍,replace 50 倍。
复制代码 代码如下:

function replaceHtml(el, html) {
var oldEl = typeof el === "string" ? document.getElementById(el) : el;
/*@cc_on // 原始的 innerHTML 在 IE 中的性能好一点
oldEl.innerHTML = html;
return oldEl;
@*/
var newEl = oldEl.cloneNode(false);
newEl.innerHTML = html;
oldEl.parentNode.replaceChild(newEl, oldEl);
/* 一旦我们从 DOM 上移除老的元素,则返回新的元素引用。*/
return newEl;
};

对于 Opera 也依然有性能提高,只是提高幅度没有上面两种浏览器惊人而已,
唯在 IE 中,则原始的 innerHTML 的方法更效率点。