措施提升

By admin in web前端 on 2019年8月13日

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

复制代码 代码如下:

复制代码 代码如下:

web前端,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;
};
可以直接用el=replaceHtml(el, newHtml)代替el.innerHTML=newHtml。

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;
};

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 的方法更效率点。

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

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

代码如下: functionreplaceHtml(el,html){
varoldEl=typeofel===”string”?document.getElementById(el):el;
/*@cc_on//原始的innerHTML在IE中的性能好一点 oldEl.i…

对于 Opera 也依然有性能提高,只是提高幅度没有上面两种浏览器惊人而已,

唯在 IE 中,则原始的 innerHTML 的方法更效率点。

原文:

下innerHTML在操作量大了以后性能下降很厉害,有人写了个提高innhtml性能的代替方法:
function replaceHtml(el, html) { var oldEl = typeof el === st…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 澳门新葡亰官网app 版权所有