以前面试总是被问到为什么你会选择把<script>标签放在<body>之后呢?这么简单的问题我却模糊不清,这么多年真的是只顾搬砖了,底层的基础自己真的了解么?真的不了解!
“在文档的<head>元素中包含所有JavaScript文件,意味着必须等到全部JavaScript代码都被下载、解和执行完成以后,才能开始呈现页面内容(浏览器在遇到<body>标签时才开始呈现内容)。对于那些需要很多JavaScript代码的页面来说,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口中将是一片空白。为了避免这个问题,现代Web应用程序一般都把全部的JavaScript引用放在<body>元素中页面内容的后面。”
在HTML中嵌入JavaScript代码虽然没有问题,但一般认为最好的做法还是尽可能使用外部文件来包含JavaScript代码,不过,并不存在必须使用外部文件的硬性规定,但支持使用外部文件的人多会强调如下优点:
- 可维护性:遍及不同HTML页面的JavaScript会造成维护问题。但把所有JavaScript文件都放在一个文件夹中,维护起来就轻松多了。而且开发人员因此也能够在不触及HTML标记的情况下,集中精力编辑JavaScript代码。
- 可缓存:浏览器能够根据具体的设置缓存链接的所有外部JavaScript文件。也就是说,如果有两个页面都使用同一个文件,那么这个文件只需下载一次。因此,最终结果就是能够加快页面加载的速度。
- 适应未来:通过外部文件来包含JavaScript无须使用前面提到XHTML或注释hack。HTML和XHTML包含外部文件的语法是相同的。