我的意思是:我知道JS只有来自.js文件才会被缓存。此外,在加载(渲染)页面(html)时,必须渲染90%的函数,因此最好在关闭body标记之前放置JS。 (这也可以防止使用document .ready();并且加载页面本身会更快。)
那么,将JS放入<head></head>
的优势是什么?期待代码的“顺序”,我不介意这么说实话......
答案 0 :(得分:3)
在<script src>
部分中放置<head>
标记在语义上是有意义的。它会阻止浏览器呈现任何内容,直到加载脚本,但确保在代码的其余部分(例如正文中)中有一个对象(例如jQuery)。
通常的做法是在头部加载一个轻量级脚本加载库(HeadJs,LABjs等),然后懒洋洋地加载重的东西和/或按需。
话虽如此,HTML5为脚本标记引入了async
属性,并重新引入了defer
属性(docs)。因此,您现在有一个非常有效的理由将<script src>
标记放在头部分中,因为:
答案 1 :(得分:2)
<script>
标记会导致两个问题:
如果你需要在呈现任何内容之前执行一些JavaScript,那么将它放入<head>
只是有意义的。
因此,在页面中尽可能低地放置它会带来更好的用户体验。
答案 2 :(得分:0)
<head>
部分中元素的重要之处在于,在<body>
开始加载之前,它们已被加载。
这是一个非常有效的功能,它被大量使用(IMO)。
加载必须在加载DOM之前运行的库,脚本必须在<head>
部分完成。
我会给你一个场景
想象一下,您需要计算屏幕总大小的30%大小并将其分配给内部元素。
这将是愚蠢的,等待元素加载大,然后运行脚本加载再次调整大小。
答案 3 :(得分:0)
将它放在标题中稍微有点语义,但它通常没有任何优点。有时需要 - 例如,使用JavaScript加载字体(使用Google Webfonts之类的东西)必须在标题中完成,否则页面将使用错误的字体呈现然后更改,这对用户来说不太好看。