在引入JavaScript脚本代码时,页面的下载和渲染都会暂停,等待脚本执行完成后才会继续,这种加载方式称为“同步加载”。“同步加载”也称“阻塞模式",它是JavaScript脚本代码默认的加载方式,之所以要同步加载,是因为JavaScript中可能有输出、修改等行为,所以默认同步执行才是安全的怛是“同步加载”也有弊端。同步加载完毕之前,页面内容是无法正常显示的,这就给网站访问者带来不好的用户体验。因此在代码加栽过程中,我们需要让那些负页面内结构、样式的代码先加载,给用户呈现一个美观的界面效果,然后再加后续的脚本代码,这时就需要用到“异步加载”。“异步加载”也称“非阻塞模式”,用于降JavaScript阻塞问题对页面造成的影响,使用<script>标记属性async和defer都可以设置 “异步加载”。下面将介绍这两种属性的使用方法。
1、async添加async属性后,页面会先下载脚本文件,不阻塞结构代码、样式代码的执行,当脚本文件下载完成后再执行该脚本文件,示例代码如下:
<script src=
http://js.test/file.js” async></script>
2、defer添加defer属性后,页面会先下载脚本文件,不阻塞结构代码、样式代码的执行,当页面效果加载完成之后,再执行脚本代码,示例代码如下:
<script src=
http://js.test/file.js” defer></script>
值得一提的是,虽然async和defer都用于设置异步加载,但二者在脚本代码下载完之后的执行方式有很大差别。添加async属性,当脚本代码下载完成之后会立即执行脚本代码;添加defer属性,会等页面效果加载完成之后再加载脚本代码。
以上我们介绍了,JavaScript的同步加载和异步加载方式,希望对您有所帮助,如果想系统学习web前端知识提升职场竞争力,请点击页面咨询按钮了解传智播客
web前端培训课程。