标题中的异步脚本使得在body中调用的其他外部脚本和函数抛出“未定义”

时间:2011-06-28 20:40:43

标签: javascript jquery html5 dom asynchronous

在我正在处理的网站的标题中,我有一大堆外部javascripts(jQuery,插件,网站功能的主要js文件等)被调用。我决定在其上添加async="async"标记,以提高Chrome和Firefox的效果。

我注意到在执行此操作后,在网站正文的各个部分中调用的某些函数在错误控制台中被标记为“未定义”。我在IE和Opera(不支持async属性的浏览器)中测试了网站,它运行得很好。然后我从所有脚本中删除了异步属性,它在Chrome和Firefox中再次正常运行。

我猜我使用async属性会导致某些脚本在调用其他脚本之前完成加载,而已完成加载的脚本是具有尚未完成加载的依赖项(如jQuery或插件)的脚本这会引发我所看到的“未定义”错误。

如果我对此有所了解,请纠正我。如果我认为正在发生的是实际发生的事情,那么在所有脚本标签上保持async属性的同时还有吗?

1 个答案:

答案 0 :(得分:0)

您希望以特定顺序加载内容async删除该订单,并按照加载顺序加载您最不可能