JavaScript的同步加载和异步加载

在引入JavaScript脚本代码时,页面的下载和渲染都会暂停,等待脚本执行完成后才会继续这种加载方式称为“同步加载”。“同步加载”也称“阻塞模式”,它是JavaScript社代码默认的加载方式,之所以要同步加载,是因为]avaScript中可能有输出、修改等行为,所以默认同步执行才是安全的。

定同步加载”也有弊端。同步加载完毕之前,页面内容是无法正常显示的,这就给网站访问者带来不好的用户体验。因此在代码加载过程中,我们需要让那些负责页面内结构、样式的代码先加载,给用户呈现一个美观的界面效果,然后再加载后续的脚本代码,这时就需要用到“异步加载”。“异步加载”也称“非阻塞模式”,用于降低JavaScript阻塞问题对页面造成的影响,使用<script>标记属性async和defer都可以设置“异步加载”。下面将介绍这两种属性的使用方法。

1)async

添加async属性后,页面会先下载脚本文件,不阻塞结构代码、样式代码的执行,当脚本文件下载完成后再执行该脚本文件,示例代码如下:

<script src="http: //js.test/file.js" async></script>
2)defer

添加defer属性后,页面会先下载脚本文件,不阻塞结构代码、样式代码的执行,当页面效果加载完成之后,再执行脚本代码,示例代码如下:

<script src="http: //js.test/ile.js"defer></script>
值得一提的是,虽然async和defer于设置异步加载,但二者在脚本代码下载完成之后的执行方式有很大差别。添加async属性,当脚本代码下载完成之后会立即执行脚本代码:添加defer属性,会等页面效果加载完成之后再加载脚本代码。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90568.html

Like (0)
guozi的头像guozi
Previous 2024年6月5日
Next 2024年6月5日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注