【问题标题】:JavaScript file inclusion. Should I not link in <head>?JavaScript 文件包含。我不应该在 <head> 中链接吗?
【发布时间】:2010-12-14 18:03:01
【问题描述】:

我正在观看 Douglas Crockfords “Theory of the DOM”,他提到我的脚本标签的位置会极大地影响我的应用程序的加载时间。此外,他断言应该在文档正文的底部尽可能包含一个脚本标签。

这准确吗?

这个视频是不是已经过时了?(他实际上认为这是他没有早点讲授 DOM 的原因)。

【问题讨论】:

    标签: javascript dom application-structure


    【解决方案1】:
    【解决方案2】:

    页眉中包含的文件甚至在页面的其余部分开始加载之前就已加载。建议您将非必要文件加载到尽可能靠近页面底部的位置,以便可以预先加载页面的其余部分。

    有一些 JS 库(例如 LABjs)可以改为加载到标头中。然后,它们允许您异步加载所有其他 JS 资产并提供回调,以便在您知道已加载 JS 资产时执行其余代码。

    【讨论】:

      【解决方案3】:

      您也可以使用http://labjs.com/

      如项目页面所述:

      LABjs(加载和阻止 JavaScript)是 Getify Solutions 支持的开源(MIT 许可)项目。 LABjs 的核心目的是成为一个通用的按需 JavaScript 加载器,能够随时从任何位置将任何 JavaScript 资源加载到任何页面中。使用 LABjs 加载脚本可减少页面加载期间的资源阻塞,这是优化网站性能的一种简单有效的方法。

      默认情况下,LABjs 将以浏览器允许的速度并行加载(并执行)所有脚本。但是,您可以轻松地指定哪些脚本具有执行顺序依赖关系,并且 LABjs 将确保正确的执行顺序。这使得 LABjs 可以安全地用于几乎任何 JavaScript 资源,无论您是否控制/托管它,也无论它是独立的还是更大的资源依赖树的一部分。

      使用 LABjs 将替换所有丑陋的“标签汤”——即通常出现在 HTML 页面的末尾或末尾的所有标签。该 API 具有表达性和链接性,可让您指定要加载哪些脚本,以及何时等待(“阻止”)(如有必要)在继续执行之前执行。该 API 还可以轻松实现内联代码执行耦合(想想:内联标签)。

      LABjs 现在有幸从与 Steve Souders 的合作中受益,并致力于成为优化、灵活、通用脚本加载的最佳单一解决方案。

      【讨论】:

        【解决方案4】:

        我也听说应该在页面末尾包含 JavaScript,以“希望”确保 DOM 已加载。我相信我不久前在 Yahoo 文档中读到了这一点。

        【讨论】:

          【解决方案5】:

          嗯,没错。除非你使用类似'head.js'的东西来并行加载你的javascript文件。哦,而且,有些脚本必须在内容之前。例如,html5-shiv 脚本。

          http://headjs.com/

          【讨论】:

            猜你喜欢
            • 2012-05-26
            • 2021-09-26
            • 1970-01-01
            • 2011-06-26
            • 1970-01-01
            • 2019-02-10
            • 2011-03-31
            • 2012-04-03
            • 1970-01-01
            相关资源
            最近更新 更多