放置在<head></head>之间
放入<head>部分js代码将在页面加载完之前被载入
<!DOCTYPE html>
<html>
<head>
<title>标题</title>
<script type=”text/javascript” src=”1.js”></script>
<script type=”text/javascript” src=”2.js”></script>
</head>
<body>
</body>
</html>
这样做的目的就是把所有的外部文件的引用都放在相同的地方。但是这也意味着必须等到全部的JavaScript代码全部被下载、解析和执行完成后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。如果需要很多JavaScript代码的页面来说,就会导致浏览器在呈现页面时出现明显的延迟,而延迟阶段浏览器窗口是一片空白。所以将<script>放置在<head></head>之间一般用于提前载入以响应用户的动作,一般不影响HTML文档的浏览器显示内容。
放置在<body></body>之间
放入<body>部分js代码将在页面载入的时候被执行
<!DOCTYPE html>
<html>
<head>
<title>标题</title>
</head>
<body>
<script type=”text/javascript” src=”1.js”></script>
<script type=”text/javascript” src=”2.js”></script>
</body>
</html>
浏览器一般是从上到下渲染HTML,当遇到Javascript代码时,浏览器将发生阻塞(不再解析后边的任何代码,包括JavaScript和HTML),有些浏览器在阻塞期间不会解析该Javascript代码后边的HTML代码,必须等到该Javascript代码执行完毕,才继续解析。所以会发生这种现象:浏览器先是呈现一部分页面,再呈现后边的页面,中间间隔时间明显。这样就会使得用户体验差。
放置在<body>标签的最后
<!DOCTYPE html>
<html>
<head>
<title>标题</title>
</head>
<body>
<script type=”text/javascript” src=”1.js”></script>
<script type=”text/javascript” src=”2.js”></script>
</body>
</html>
这样,在解析包含的JavaScript 代码之前,页面的内容将完全呈现在浏览器中。而用户也会因为浏览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了。