请问异步问题

请问异步问题

请老师解释一下异步,不太懂。js单线程吗?为什么异步这不是同时执行两个?

正在回答

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

1回答

可以这样理解:当使用一系列的动画效果时,包括animate,hide,show,这些动画函数都会被放进一个名为"fx"的队列中,然后再以先进先出的方式执行队列中的函数。比如视频中的代码:

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

在执行代码的时候,从上到下执行,将animate动画放在对列中,其他方法则是不会进入这个队列中,并且先于动画函数的执行,也就是在"fx"先进先出,取出第一个函数之前,它就已经执行了。

所以是先输出1,2,3,然后按照第一个动画,第二个动画来执行。

祝学习愉快~~

  • hy_wang 提问者 #1
    请问老师我不太明白先进先出的意思。请问是这个意思吗 就是老师你列举的代码,代码正常从上往下执行,看到动画放进队列中然后并不会执行动画队列。等到正常所有代码执行完毕之后(也就是说js渲染结束)然后在执行队列中的动画,是这个意思吗。 因为我们平常代码执行很快,所以看上去是同时是吗
    2018-10-10 19:52:01
  • 好帮手慕星星 回复 提问者 hy_wang #2
    是这个意思,先进先出的意思就是在执行对列动画时,哪个先被放进对列中的,就会先出来被执行。
    2018-10-11 09:25:08
  • hy_wang 提问者 回复 好帮手慕星星 #3
    老师我还奇怪一个小疑问,比如说页面中有多个元素绑定了多个动画。当我们打开页面的时候看到的效果是所有动画元素同时在进行动画。请问一下这个是不是因为,js是单线程的,也就是js一个时间只能执行一句代码也就是一个动画。js解析一个动画代码很快,当js解析完一个动画代码时,动画的渲染就和js无关了是吗。这时候是不是浏览器自己执行动画的渲染,然后紧接着js执行下一个动画,浏览器同时渲染第二个元素的动画。因为js执行一个简单的动画非常快,所以看上去是多个不同元素的动画在同时执行是吗,实际是js一个一个解析,浏览器同时渲染js解析完毕的动画。换句话js单线程解析动画,浏览器多线程渲染元素。请问老师我的理解哪里有问题
    2018-10-11 14:48:30
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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