出于速度目的,我正在尝试决定是将JavaScript放在<head>
中还是放在我网站的</body>
之前。我更喜欢头部而不关心额外的HTTP请求,只关心这个脚本的行为。
以下是两个代码片段,它们是背靠背加载的(Google Analytics):
脚本1:
// Loaded externally:
// <script type="text/javascript" src="google_analytics_1.js"></script>
var gaJsHost = (
( "https:" == document.location.protocol ) ?
"https://ssl." :
"http://www."
);
document.write( unescape(
"%3Cscript src='" +
gaJsHost +
"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"
) );
脚本2:
// Loaded externally:
// <script type="text/javascript" src="google_analytics_2.js"></script>
try {
var pageTracker = _gat._getTracker( "UA-0000000-0" );
pageTracker._trackPageview();
}
catch( err ) { }
使用上面的代码,JavaScript是否延迟发送页面的其余部分,直到它检索ga.js
,或者是否代之以说“好吧,我已经排队等待ga.js
的请求,现在我将继续发送页面的其余部分,等待它下载到客户端...“?
我的直觉告诉我它是线性的,并且页面将被延迟,直到客户端完全下载ga.js
为止。是吗?
答案 0 :(得分:0)
NOP。它不会延迟。它将排队第一个请求并继续第二个请求,实际上它是处理它的浏览器。
答案 1 :(得分:0)
在加载ga.js文件时,页面的解析将暂停,但服务器将继续发送页面的其余部分。当脚本加载并执行后,它将继续显示页面的其余部分。
因此,脚本和页面的其余部分将并行加载,但在处理完脚本之前,它不会触及页面的任何其余部分。