javascript - 为 innerHTML 设置大值时提高性能的方法

标签 javascript html performance dom

我正在尝试为节点的 innerHTML 设置一个巨大的 (200K) 响应。目标是在 Internet Explorer 6 中获得比 2.7 秒更好的时间。

有什么想法吗?

最佳答案

这不会让它发生得更快,但会阻止浏览器锁定用户;当这种情况发生在后台时,他们可以继续使用该页面:

function asyncInnerHTML(HTML, callback) {
    var temp = document.createElement('div'),
        frag = document.createDocumentFragment();
    temp.innerHTML = HTML;
    (function(){
        if(temp.firstChild){
            frag.appendChild(temp.firstChild);
            setTimeout(arguments.callee, 0);
        } else {
            callback(frag);
        }
    })();
}

使用它:

var allTheHTML = '<div><a href="#">.............</div>';
asyncInnerHTML(allTheHTML, function(fragment){
    myTarget.appendChild(fragment); // myTarget should be an element node.
});

此技术将比普通 innerHTML 花费更长的时间,但用户将能够继续使用您的网站而不会注意到延迟。

关于javascript - 为 innerHTML 设置大值时提高性能的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/788614/

相关文章:

linux - 并行计算 : how to share computing resources among users?

javascript - 单击页面链接时重新调整站点的主体和 iframe

javascript - 不假定 Javascript 知识的 Coffeescript 教程

html - 如何将文本定位在 block 或行内 block 元素的底部?

c++ - Linux 中的代码执行时间

Swift Final 类和函数

页面对象模型中的 Javascript 执行器

javascript - 如何在 PHP 中包含 Javascript?

如果选择 Javascript Accordion 关闭标题/面板

javascript - 如何在 jQuery 中为标签创建点击事件?