xiaotuan
2016-07-08 09:55
老师,任务链上的同步和异步任务的区别··哪些是异步任务?动画暂停是属于异步任务吗?
首先,要理解JS是单线程的。也就是说,在一次Event Loop中,会同步执行完所有JS代码。
同步任务是在一次Event Loop中执行的JS代码,去完成相应的“任务”。
异步任务不是一次Event Loop可以做完的,通常JS有几种方式实现异步,如异步ajax请求,setTimeout,requestAnimationFrame等。
动画库这个案例中,我们引入了“任务链”这个概念,把一些同步异步的“任务”添加到任务链上。所有通过timeline创建的动画都是异步任务,因为它底层用到了requestAnimationFrame。
动画暂停不是一个任务,它是调用了timeline的一个接口方法,达到暂停动画执行的目的。
好的 太感谢老师了
原生 JS 实现帧动画库
47183 学习 · 92 问题
相似问题