2013-02-12 36 views
9

根据诸如Yahoo Developer Network之类的许多消息来源,javascript会在页面底部显示,以便在加载javascript之前显示网页内容。将头文件中的require.js放入head标签是否会让浏览器等待脚本在显示页面之前完成加载?为什么require.js进入head标签

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

回答

5

答案有点复杂;它可以在您的页面的<head><body>中,取决于您要求的和require.js。在加载内容之前,某些操作在逻辑上需要发生,但大多数事情都乐于等待。

的一些东西,需要在页面加载之前发生的一个例子是CSS预处理器像LESS,这显然需要在<head>运行(在现实中,这或许应该被预编译并担任静态的CSS,但它就是一个很好的例子) - 另一个例子是JavaScript模板系统或某种类型的客户端MVC系统,如ember.js

对于基本的表示性JavaScript,通常可以安全地将它包含在页面的底部。

+0

请注意,如果您在head元素中包含requirejs标记,它会自动为您的主脚本注入具有异步属性的另一个脚本标记。 – Bil 2015-08-12 02:21:05

1

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

0

这取决于JavaScript文件的内容,它将在何时执行。

例如

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

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