为什么require.js要放在head标签内

9
根据许多来源,如Yahoo开发者网络,javascript应放在页面底部,以便在加载javascript之前显示网页内容。将require.js的调用放在head标签中是否会使浏览器等待脚本加载完成后再显示页面?
<head>
<title>My Sample Project</title>
<script data-main="scripts/main" src="scripts/require.js"></script>
</head> 
3个回答

5
答案有些复杂;它可以放置在你的页面的 <head> 或者 <body> 中,这取决于你使用 require.js 需要什么。某些操作需要逻辑上在内容加载之前发生,但大多数内容都可以等待。
一个需要在页面加载之前发生的示例是像 LESS 这样的 css 预处理器,显然需要在 <head> 中运行(实际上这应该是预编译并作为静态css提供,但它作为一个好的例子)- 另一个示例是JavaScript模板系统或某种类似客户端MVC系统的 ember.js
对于基本的表现性 JavaScript,通常将其包含在页面底部是安全的。

请注意,如果您在 head 元素中包含 requirejs 标记,则它将自动注入另一个带有 async 属性的脚本标记以用于您的主要脚本。 - Bil Simser

1
答案是肯定的。对于头部标签中的所有脚本来说都是如此。一个脚本块可以并行下载,一旦执行完成,浏览器会继续渲染页面。

0

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

例如:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接