现在的位置: 首页 > web前端 > 正文

JavaScript的同步加载和异步加载关系

2020年02月10日 web前端 ⁄ 共 785字 ⁄ 字号 评论关闭

  在引入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的同步加载和异步加载方式,希望对您有所帮助。

抱歉!评论已关闭.