以下是www.abc.com/index.html
的大纲<html>
<head>
..
..
</head>
<body>
<script>
var js1 = document.createElement('script');
js1.type = "text/javascript";
js1.async = true;
js1.src = "cdn/js1.js";
document.getElementsByTagName('head').appendChild(js1);
console.log('Start: ' + new Date().getTime());
</script>
<img src="img1.jpg">
<img src="img2.jpg">
....
</body>
</html>
这是js1.js
的内容console.log('End: ' + new Date().getTime());
var img = new Image();
img.src = "img3.jpg";
var f1 = function() {
..
}
var f2 = function() {
..
}
...
观察结果是,“终结”与“结束”之间存在很大的差异。和&#39;开始&#39;输出。在浏览器网络选项卡中,我发现这是网络请求的顺序:
问题是 - 为什么脚本开始执行需要这么长时间?我尝试从页面中删除其他图像,这会使脚本执行得更快。为什么在脚本执行之前执行其他请求(我发现即使同步调用也会发生这种情况)?有没有办法让页面在页面的其余部分之前完全执行?