javascript - 加载 JS 文件 - 直接加载到 Document 与 DocumentFragment

标签 javascript ajax documentfragment

我想知道这两种不同的 AJAX 外部文件加载方法有什么好处或区别

示例 1 - 直接将文件加载到文档中

(function () {
    var s = document.createElement('script'); 
    s.type = 'text/javascript'; 
    s.async = true; 
    s.src = '/myjs.js';
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s, x);
})();

示例 2 - 将文件加载到 documentFragment,然后将片段添加到文档

(function(d, s) {
    var j, h = d.getElementsByTagName(s)[0],
        f = d.createDocumentFragment(),
        add = function(u, i) {
            if (d.getElementById(i)) {
                return;
            }
            j = d.createElement(s);
            j.src = u;
            i && (j.id = i);
            f.appendChild(j);
        };

    add('/myjs.js');
    h.parentNode.insertBefore(f, h);
}(document, 'script'));

两者之间有什么真正的区别或好处吗?

最佳答案

根据 Josh Resig 的说法,使用文档片段可以将您的应用程序速度提高 2-3 倍,他设置了一个演示,您可以在其中看到完成任务所用的时间(以毫秒为单位)。

http://ejohn.org/apps/fragment

关于javascript - 加载 JS 文件 - 直接加载到 Document 与 DocumentFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744472/

相关文章:

javascript - MapBox - 集群缩放

javascript - 创建新的 Mongoose 子文档时出现重复键错误

javascript - 使用箭头在我的画廊中导航时更改 URL 中的哈希值 (jQuery)

javascript - 使用 JQuery 从本地 url 解析 JSON

php - IE8 异步文件上传

javascript - 如何在不插入 DOM 的情况下对文本字符串使用 jQuery 选择器/find()?

javascript - 为什么我使用基于 Blob 的对象 URL 下载 AJAX 文件会损坏文件?

javascript - 无法将变量从 PHP 函数传递到同一文件中的另一个函数

javascript - 使用文档片段真的能提高性能吗?

JQuery刚刚创建的空div没有文档片段作为父级