当前位置:首页 > 前端 > 正文内容

script中defer和async区别

放牧的风4年前 (2021-05-25)前端1914

主要记录下defer和async的区别:
在没有defer或者async的情况下,会立即执行脚本,所以通常建议把script放在body最后

<script src="script.js"></script>

有async的话,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。
但是多个js文件的加载顺序不会按照书写顺序进行

<script async src="script.js"></script>
有derer的话,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成,并且多个defer会按照顺序进行加载。
<script defer src="script.js"></script>

upload-images.jianshu.io_upload_images_14923653-87958743cae248f5.png_imageMogr2_auto-orient_strip_imageView2_2_w_688_format_webp.png

所以区别主要在于一个执行时间,defer会在文档解析完之后执行,并且多个defer会按照顺序执行,而async则是在js加载好之后就会执行,并且多个async,哪个加载好就执行哪个

扫描二维码推送至手机访问。

版权声明:本文由放牧的风发布,如需转载请注明出处。

本文链接:https://grazingwind.com/post/62.html

分享给朋友:

相关文章

用webstorm在chrome 调试页面时一直弹出 copy authorization url to clipboard

用webstorm在chrome 调试页面时一直弹出 copy authorization url to clipboard

用chrome来调试页面,每次刷新会弹出 requested without authorization,是因为更新后的bug,可以在Setting - debugger中设置 ...

Chrome浏览器开启Ajax跨域访问调试

Chrome浏览器开启Ajax跨域访问调试

由于浏览器安全性限制,Ajax是不能跨域访问的,而我们在日常开发工作中,经常会出现本地开发环境需要访问其他服务器上的API情况。提示信息为:Access to XMLHttpRequest at 'http://****'...

前端性能优化的知识(上)

前端性能优化的知识(上)

前言引言反复看下以下三个问题。有木有不同的人问过你:什么是前端性能优化?有木有不同的面试官问过你:你为前端性能优化做过什么?有木有哪一次,你问过自己:别人问我前端性能优化到底应该如何答复?你有木有一套自己的关于性能优化的答案,能让技术大牛和...

前端性能优化的知识(下)

前端性能优化的知识(下)

引言当遇见“你为性能优化做了哪些事情”,70% 的人上来就说减少合并资源、减少请求、数据缓存这些优化手段;15% 的人会提到需要在 DevTools 下先看看首屏时间,围绕首屏来优化;10%的人会提到需要接入一个性能平台来看看现状,诊断一下...

什么是BFC?看这一篇就够了

什么是BFC?看这一篇就够了

BFC 定义BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并...