我还是不太理解,能麻烦老师耐心帮忙解答一下么

我还是不太理解,能麻烦老师耐心帮忙解答一下么

defer是加载整个页面之后在执行, async是异步,可以不用等待就加载执行,为什么老师的例题中是derfer先执行,再次是文字,再次是async呢,

正在回答

登陆购买课程后可参与讨论,去登陆

5回答

兄弟,我在网上看到这个,你瞅瞅https://www.jianshu.com/p/c7c331ea4fe8

你就跟着老师理解就行,老师也说了实际开发中不常用,知道就这么个东西就行啦,不用太纠结,哈哈哈

好帮手慕粉 2020-02-08 19:32:09

同学你好,关于同学的问题回答如下:

1、两个是异步执行的。

2、dom没有构建好也是会执行script标签的,但是只是加载js文件,浏览器是多线程的,所以一同加载的时候浏览器会另开一个线程来加载脚本,相当于:一个加载页面,一个加载script脚本。当开始加载"页面"html+css时,一同加载写有async的脚本。

3、关于async,解析机制如下:

http://img1.sycdn.imooc.com//climg/5e3e9bc00904785607370186.jpg

关于defer,解析机制如下:

http://img1.sycdn.imooc.com//climg/5e3e9bb409d6aa7207480195.jpg

浏览器的解析机制就是这样的,同学如果实在不能理解的话,记住即可。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 bao_ #1
    1async是异步加载,加载完成就执行, derfer我理解的是异步加载,等dom元素渲染完成之后,最后在执行。 我不明白老师你为什么说是异步执行! 2,老师你把两个图放反了吧! 3,我想知道async解析js文件之后就执行,例题中为什么最后才显示! 我知道我理解比较慢,但还是希望老师能够耐心认真回答问题
    2020-02-08 20:36:56
好帮手慕粉 2020-02-08 18:27:55

同学你好,关于同学的问题回答如下:

1、老师并没有说它是顺序执行的呀,老师说的是与dom结构同步加载。

async不会停止(阻塞)dom 树构建,立即异步加载,加载好后立即执行,而defer不会停止(阻塞)dom 树构建,立即异步加载。加载好后,如果 dom 树还没构建好,则先等 dom 树解析好再执行;如果 dom 树已经准备好,则立即执行。

2、其实这两个属性最大的差别就是当引入多个defer文件时,会按defer文件的引入顺序执行,当引入多个async文件时,不会按顺序而是哪个先执行完就执行哪个。

3、这个属性在实际中并不常用,同学了解一下即可。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 bao_ #1
    老师你说的我有点懵(๑• . •๑), 问题一:它们两个都是异步加载是吗? 问题二async不会停止(阻塞)dom 树构建,立即异步加载,加载好后立即执行,如果 dom 树还没构建好它执行吗? 问题三:defer不会停止(阻塞)dom 树构建,立即异步加载。加载好后,如果 dom 树还没构建好,则先等 dom 树解析好再执行;它是整个页面都加载好在执行,老师的例题中derfer比文字和async都先显示的,ansync它也是弹框,它加载好就执行怎么是整个页面都加载好执行完它最后执行的。
    2020-02-08 18:55:43
提问者 bao_ 2020-02-08 13:58:44

async放在head里先加载加载完就执行,它怎么会和DOM元素加载完执行完在执行呢,async它本来就是不会按顺序执行呀

好帮手慕粉 2020-02-08 13:51:48

同学你好,关于同学的问题回答如下:

1、如果你把script标签写在head中,按照文档的加载顺序,script加载并执行完毕之后才会加载DMO结构,可能会造成阻塞,DOM结构没有加载完就执行有可能会报错。

2、defer的意思只是加载,并不执行js代码,等DOM结构全部加载完毕之后再执行。

3、async的意思是先加载,执行的时候和DOM结构加载一起,两个同时进行。

4、这种情况下:

http://img1.sycdn.imooc.com//climg/5e3e4c25096e043205000156.jpg

defer是页面加载完成后就会执行js文件,因为defer.js文件中是弹框,阻断页面输出,所以还是先弹框。async是异步执行的,所以需要等到页面输出之后才会执行。最终的效果也就是先弹出defer,页面输出,最后弹出async。

这个在实际开发中并不常用,同学了解下即可。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师