Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 - Fatal编程技术网

Javascript 什么是;“异步延迟”;什么时候一起使用?

Javascript 什么是;“异步延迟”;什么时候一起使用?,javascript,Javascript,我遇到了以下代码: <script src="foo.js" async defer> 我知道将下载脚本,然后在暂停HTML解析时对其进行解析。我还知道将下载脚本并在解析完所有HTML后进行解析 做什么(例如,异步和延迟一起使用)?如果同时指定这两个选项,异步在现代浏览器上优先,而支持延迟但不支持异步的旧浏览器将退回到延迟 有关支持表,请查看和的caniuse.com p/s:这些属性只有在页面的头部部分使用脚本时才有意义,如果将脚本放在正文页脚中,这些属性将毫无用处。关于异

我遇到了以下代码:

<script src="foo.js" async defer>

我知道
将下载脚本,然后在暂停HTML解析时对其进行解析。我还知道
将下载脚本并在解析完所有HTML后进行解析


做什么(例如,异步和延迟一起使用)?

如果同时指定这两个选项,
异步
在现代浏览器上优先,而支持
延迟
但不支持
异步
的旧浏览器将退回到
延迟

有关支持表,请查看和的
caniuse.com



p/s:这些属性只有在页面的
头部
部分使用脚本时才有意义,如果将脚本放在
正文
页脚中,这些属性将毫无用处。

关于
异步
延迟
的另一种解释:“异步”和“延迟”异步加载外部脚本。所以你不需要同时设置它们,除非你真的需要“异步”,它在现代浏览器中具有更高的优先级。如果您想在页面加载后立即与页面交互,请使用“异步”。如果您的脚本依赖于其他脚本,并且您应该按照正确的顺序使用它们,请使用“延迟”。例如,首先是jQuery(延迟),然后是所有需要jQuery的jQuery插件。但千万不要将“async”设置为jQuery,因为一旦加载它,它将在任何不可预知的地点/时间执行。现代浏览器(如Chrome)在遇到延迟或异步时,会将脚本视为延迟或异步吗?
async
。需要明确的是,如果设置了
async
,并且异步加载脚本,则会忽略
defer
。如果两者都存在,并且浏览器仅支持
延迟
,则浏览器将返回到
延迟
行为。