我已经多次使用过jQuery,但我只是意识到,虽然我没有做任何事情来等待或检查要加载的jQuery插件,但运行jQuery代码并没有遇到问题。我的典型代码是:是否需要检查jQuery库是否已加载?
<html>
...
<script type="text/javascript" src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
...
<body>
...
</body>
<script>
//jQuery code, eg:
$('#xxx').load('yyyy.html');
... // more code
</script>
</html>
然后最近,我经历了从codeorigin.jquery.com有时失败或采取20s左右加载文件。在使用Chrome浏览器时,我注意到Chrome浏览器不会呈现HTML页面,也不会执行其中的JavaScript代码,直到引用的外部脚本文件的加载活动完成(可能是成功或失败)为止。这很好。
我的问题:它是一个标准的浏览器规范,浏览器总是会等待加载页面中引用的所有外部脚本才能在呈现和执行html页面之前完成吗?或者,浏览器是否只是按顺序执行页面,等待每一个完成后再移到下一行,而不是异步?或者没有定义的顺序,网络设计人员有责任在使用它们之前确保所有外部脚本已准备就绪?
加载不是异步。如果您将脚本放在标题中,它们将在到达主体之前加载并执行。 – Cristy
同意,将您的脚本标记移动到正文的底部。除非添加async或defer属性,否则在运行之后,脚本将被评估。 –