作者:洪凤兴惠婷 | 来源:互联网 | 2022-03-31 09:04
此方法大大提高了innerHTML在Firefox和Safari上的性能。replaceHtml()在Firefox2.0.0.6里destroy与replace的速度各快了473倍以及50倍。而在Safari3.0.3beta上则是create100倍,replace50倍。
代码如下:
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 的方法更效率点。