我还是不太理解,能麻烦老师耐心帮忙解答一下么
defer是加载整个页面之后在执行, async是异步,可以不用等待就加载执行,为什么老师的例题中是derfer先执行,再次是文字,再次是async呢,
正在回答
兄弟,我在网上看到这个,你瞅瞅https://www.jianshu.com/p/c7c331ea4fe8,
你就跟着老师理解就行,老师也说了实际开发中不常用,知道就这么个东西就行啦,不用太纠结,哈哈哈
同学你好,关于同学的问题回答如下:
1、老师并没有说它是顺序执行的呀,老师说的是与dom结构同步加载。
async不会停止(阻塞)dom 树构建,立即异步加载,加载好后立即执行,而defer不会停止(阻塞)dom 树构建,立即异步加载。加载好后,如果 dom 树还没构建好,则先等 dom 树解析好再执行;如果 dom 树已经准备好,则立即执行。
2、其实这两个属性最大的差别就是当引入多个defer文件时,会按defer文件的引入顺序执行,当引入多个async文件时,不会按顺序而是哪个先执行完就执行哪个。
3、这个属性在实际中并不常用,同学了解一下即可。
如果我的回答帮助了你,欢迎采纳,祝学习愉快~
同学你好,关于同学的问题回答如下:
1、如果你把script标签写在head中,按照文档的加载顺序,script加载并执行完毕之后才会加载DMO结构,可能会造成阻塞,DOM结构没有加载完就执行有可能会报错。
2、defer的意思只是加载,并不执行js代码,等DOM结构全部加载完毕之后再执行。
3、async的意思是先加载,执行的时候和DOM结构加载一起,两个同时进行。
4、这种情况下:
defer是页面加载完成后就会执行js文件,因为defer.js文件中是弹框,阻断页面输出,所以还是先弹框。async是异步执行的,所以需要等到页面输出之后才会执行。最终的效果也就是先弹出defer,页面输出,最后弹出async。
这个在实际开发中并不常用,同学了解下即可。
如果我的回答帮助了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星