2

我的意思是:我知道只有来自 .js 文件的 JS 才会被缓存。还有,我90%的函数必须在页面(html)加载(渲染)的时候渲染,所以最好在关闭body标签之前放JS。(这也阻止了使用文档 .ready(); 并且页面本身的加载会更快)。

那么,将 JS 放在<head></head>. 期待代码的“顺序”,老实说,我不太介意......

4

4 回答 4

3

在部分内放置<script src>标签<head>是有意义的——在语义上。它确实会阻止浏览器在加载脚本之前呈现任何内容,但确保在您的代码的其余部分(例如,在正文中)中有一个对象(例如 jQuery)可用。

一种常见的做法是在 head 部分加载轻量级脚本加载库(HeadJsLABjs等),然后懒惰地和/或按需加载重的东西。

话虽如此,HTML5 引入了asyncscript 标签的属性并重新引入了该defer属性(docs)。因此,您现在有一个非常好的和正当的理由将<script src>标签放在 head 部分中,因为:

  1. 这说得通
  2. 页面完成加载脚本仍会加载
于 2012-04-24T09:14:02.050 回答
2

<script>标签导致两个问题:

  1. 在加载脚本之前,脚本下方的所有内容都不会呈现。
  2. 在脚本完成之前,脚本下方的所有组件都不会开始下载。

如果您需要在渲染任何内容之前执行一些 JavaScript,那么将其放入<head>唯一真的很有意义。

因此,将它放在页面中尽可能低的位置会带来更好的用户体验。

于 2012-04-24T09:35:17.610 回答
0

<head>部分中的元素的重要一点是它们在<body>开始加载之前被加载。

这是一个非常有效的功能,被大量使用(IMO)。

加载 DOM 之前必须运行的库、脚本必须在<head>部分中完成。


我给你一个场景

想象一下,您需要计算屏幕总大小的 30% 大小并将其分配给里面的元素。

等待元素加载大,然后运行脚本重新加载调整它是愚蠢的。

于 2012-04-24T09:05:32.440 回答
0

将它放在标题中稍微语义化一些,但它通常没有任何优势。有时这是必要的——例如,使用 JavaScript 加载字体(使用 Google Webfonts 之类的东西)必须在标题中完成,否则页面将使用错误的字体呈现然后更改,这对用户来说看起来不太好。

于 2012-04-24T09:06:07.840 回答