Javascript 为什么require.js会进入head标记中

Javascript 为什么require.js会进入head标记中,javascript,html,requirejs,Javascript,Html,Requirejs,根据雅虎开发者网络(Yahoo Developer Network)等许多来源,javascript位于页面底部,因此在加载javascript之前,网页内容将显示出来。在head标记中调用require.js是否会使浏览器在显示页面之前等待脚本完成加载 <head> <title>My Sample Project</title> <script data-main="scripts/main" src="scripts/require.js">

根据雅虎开发者网络(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> 

我的示例项目

答案是肯定的。对于head标记中的所有脚本,这是相同的。脚本块并行下载,一旦页面执行完毕,浏览器将继续呈现该页面。

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

e、 g


函数加载(){
警报(“加载事件!”);
}
window.onload=加载;

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

答案有点复杂;它可以进入页面的
,具体取决于您对
require.js
的要求。某些操作在逻辑上需要在加载内容之前进行,但大多数操作都乐于等待

加载页面之前需要执行的一个示例是css预处理器,如
LESS
,这显然需要在
中运行(实际上,这可能需要预编译并作为静态css使用,但这是一个很好的示例)-另一个例子是JavaScript模板系统或某种客户端MVC系统,如
ember.js


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

请注意,如果在head元素中包含requirejs标记,它将自动为主脚本注入另一个带有async属性的脚本标记。
<script>
  function load() {
    alert("load event!");
  }
  window.onload = load;
</script>