【问题标题】:why does require.js go inside head tag为什么 require.js 进入 head 标签
【发布时间】:2013-02-12 17:57:26
【问题描述】:

根据 Yahoo Developer Network 等许多来源,javascript 位于页面底部,因此网页内容将在加载 javascript 之前显示。在 head 标签中调用 require.js 是否会让浏览器在显示页面之前等待脚本完成加载?

<head>
<title>My Sample Project</title>
<script data-main="scripts/main" src="scripts/require.js"></script>
</head> 

【问题讨论】:

    标签: javascript html requirejs


    【解决方案1】:

    答案有点复杂;它可以进入您页面的&lt;head&gt;&lt;body&gt;,具体取决于您需要什么require.js。某些操作在逻辑上需要在内容加载之前发生,但大多数事情都乐于等待。

    在页面加载之前需要发生的事情的一个例子是像 LESS 这样的 css 预处理器,这显然需要在 &lt;head&gt; 中运行(实际上这可能应该被预编译并作为静态的css,但它是一个很好的例子) - 另一个例子是 JavaScript 模板系统或某种客户端 MVC 系统,如 ember.js

    对于基本的展示性 JavaScript,通常将其包含在页面底部是安全的。

    【讨论】:

    • 请注意,如果您在 head 元素中包含您的 requirejs 标记,它将自动为您的主脚本注入另一个带有 async 属性的脚本标记。
    【解决方案2】:

    答案是肯定的。对于 head 标签中的所有脚本,这都是一样的。脚本块并行下载,浏览器在完成执行后继续呈现页面。

    【讨论】:

      【解决方案3】:

      这取决于 javascript 文件的内容,何时执行。

      例如

      <script>
        function load() {
          alert("load event!");
        }
        window.onload = load;
      </script>
      

      页面加载后会显示消息框。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-23
        • 1970-01-01
        • 2011-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多