Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 标头中的异步脚本使其他外部脚本和函数在正文中调用;“未定义”;_Javascript_Jquery_Html_Dom_Asynchronous - Fatal编程技术网

Javascript 标头中的异步脚本使其他外部脚本和函数在正文中调用;“未定义”;

Javascript 标头中的异步脚本使其他外部脚本和函数在正文中调用;“未定义”;,javascript,jquery,html,dom,asynchronous,Javascript,Jquery,Html,Dom,Asynchronous,在我正在处理的站点的标题中,我调用了一大堆外部Java脚本(jQuery、插件、站点功能的主js文件等)。我决定在它们上面加上async=“async”标签,以提高Chrome和Firefox的性能 我注意到这样做之后,在站点主体的各个部分中调用的一些函数在错误控制台中被标记为“未定义”。我在IE和Opera(不支持async属性的浏览器)中测试了该站点,它运行正常。然后,我从所有脚本中删除了async属性,它在Chrome和Firefox中再次正常工作 我猜我对async属性的使用会导致一些脚

在我正在处理的站点的标题中,我调用了一大堆外部Java脚本(jQuery、插件、站点功能的主js文件等)。我决定在它们上面加上
async=“async”
标签,以提高Chrome和Firefox的性能

我注意到这样做之后,在站点主体的各个部分中调用的一些函数在错误控制台中被标记为“未定义”。我在IE和Opera(不支持async属性的浏览器)中测试了该站点,它运行正常。然后,我从所有脚本中删除了async属性,它在Chrome和Firefox中再次正常工作

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


如果我对这一点的理解是错误的,请纠正我。如果我认为正在发生的是实际发生的事情,在保留所有脚本标记上的async属性的同时,是否还有其他解决方法?

您希望以特定顺序加载内容
async
删除该顺序,并以您最不希望的顺序加载内容。

这是有道理的,但是async属性如何证明对任何脚本都有效什么剧本?似乎很多脚本依赖于事件和某些对象“准备就绪”,而且在这些情况下,async属性似乎会把很多事情搞砸…@Aaron我不确定。我不亲自使用它们,因为我总是希望我的代码按照我放置它的顺序加载。我肯定希望库总是首先加载,因为我看到的js代码的其余部分可能需要它们。也许我对这个属性期望太高了。我想立即加载库和插件确实是个好主意。我将坚持这样做,并异步加载其他不太重要的脚本。谢谢你的帮助!