老师 如何识别代码中同步异步那

老师 如何识别代码中同步异步那

老师 如何识别代码中同步异步那?
视频中的案例没感觉是在异步加载图片

正在回答

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

1回答

同学你好,解答如下:

1、一般来说见到延时器或ajax、promise都可以初步认定为是异步处理,但这不绝对如ajax也有同步的方法。它们有一个共通点在于程序没有等待它们直接往下执行了,那么暂且就可以认为是异步的。如下:

https://img1.sycdn.imooc.com//climg/63575deb096a044604300180.jpg

https://img1.sycdn.imooc.com//climg/63575df4093366df02620113.jpg

2、图片加载是异步的,图片是经过与后端交互得到的图片路径,然后将这个路径给到img的src属性中。这里可以理解为img的src开始是空的,当数据(图片路径)得到以后在给img的src进行赋值。那么这个操作就是异步的。

祝学习愉快!

  • 这里的异步理解为:一开始页面的src属性是空的,后台将数据传到js中,js加载到 创建的 img 实例,最后传给页面你的DOM? 那这个过程 img.onload 的意义是什么,img不是自己创建出来的吗?为什么还要监听他的onload 事件?

    2023-03-06 21:13:53
  • 同学你好,img.onload它是指图片加载后索要执行的逻辑。如下:

    这里我们假设当img创建出来后得到它的宽度。如果正赶上用户的网络延迟,我们做个试验:

    https://img1.sycdn.imooc.com//climg/64069ae809c2b57410320221.jpg

    https://img1.sycdn.imooc.com//climg/64069ac409d92f4e10230565.jpg

    https://img1.sycdn.imooc.com//climg/64069a5309c15e7313050390.jpg

    从以上的例子中我们不难发现,img.onload的实际上就是在“监听”是否已经加载完成。如果不使用它那么比如说网络卡顿,或者请求阻塞什么的都可能会引发bug,同学是否在网上看到imgloading的例子,比如说进到一个网页有大量的图片,都会有这种loading...字样。等图片加载完毕后在展示出来,实则就是img.onload后做的图片展示。

    祝学习愉快!

    2023-03-07 10:04:41
  • 如果不使用它那么比如说网络卡顿,或者请求阻塞什么的都可能会引发bug’,什么bug??我还是理解不了 这里 onload 的意义。。。


    2023-03-07 17:08:54
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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