深入解析jQuery动画调度机制:同步与异步代码的高效执行流程
239***155
动画调度
对于的动画的设计我们要分 2 个层面理解:
动画的源码:
<p style='margin-bottom:15px;color:#555555;font-size:15px;line-height:200%;text-indent:2em;'> <pre class="prettyprint prettyprinted" style="border-width: 1px 1px 1px 4px; border-style: solid; border-color: rgb(221, 221, 221); border-image: initial; margin-top: 3px; margin-bottom: 5px; padding: 7px 10px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 12px; line-height: 20px; font-family: Menlo, Monaco, Consolas, "Andale Mono", "lucida console", "Courier New", monospace; white-space: pre-wrap; word-break: break-all; overflow-wrap: break-word; background-image: url("/images/codecolorer_bg.gif"); background-position: center top; background-color: rgb(251, 251, 251); border-radius: 1px;">定义一个函数 animate,它接受四个参数:prop、speed、easing 和 callback。这个函数用于执行动画相关的操作。
doAnimation = function() {
定义了一个变量 anim,它是通过 Animation 函数创建的,该函数接收三个参数,分别是 this、args 和 optall。
};
https://img2.baidu.com/it/u=3509713940,2496739738&fm=253&fmt=JPEG&app=138&f=JPEG?w=1033&h=500
this 执行 optall.queue 并执行 doAnimation 操作。</pre></p>
这个代码进行了缩减,然而我们之前提到的最为重要的两点在这儿都有所涉及。其一,通过 queue 来调度动画之间的衔接;其二,对方法执行单个动画进行了封装。
在 queue 的调度方面涉及一个关键处理:同步代码和异步代码同时进行。同步收集动画序列,异步调用序列。整个调用的流程如下:
整个动画的调度有一个流程,其实是利用队列的异步空闲来执行同步代码,这样处理不会浪费资源,并且精确度最高。
使用多个方法能够形成动画链,而这个动画链实际上会被加入到 queue 队列之中。
在每一次的 queue 方法里,会将动画数据写入队列之中,接着取出队列里的第一个序列,再通过相应方法来执行。
在开始执行之前,将一个进程锁写入到 queue 里面,这意味着这个动画正在执行中,以此来防止同个序列的多个动画重复执行,这就是异步执行同步收集的处理方案
此时动画开始了。这里要注意,动画是在异步执行的,同时还有同步的代码。接着继续调用下一个。
执行相同的方法逻辑,然而此时出现了问题。动画有可能仍在执行,与此同时,后续的操作还在继续调用。因此,在这个时候,后面的动画代码就需要等待(通过进程锁来实现)。
https://img0.baidu.com/it/u=2385755064,2967426285&fm=253&fmt=JPEG&app=138&f=JPEG?w=732&h=500
队列头有一把“进程锁”。在这种情况下,动画只需加入队列,并且可以通过是否存在来判断是否执行。
所有方法加入队列时都依上述逻辑依次执行。动画执行完毕会有结束通知,接着从 queue 取出第一个队列继续执行,如此循环。
每一个动画效果都能够被视作一个独立的动画对象,并且每一个这样的对象都实现了对属于自身这个动画的生命周期的控制。
动画对象之间并无直接关系,然而要实现连续调用,就需引入一套队列机制即 Queue,以控制对象之间的转换。
黑龙江省黑河的网站建设推广情况如何呢?黑河的网站制作设计怎么样呢?黑河本土附近的网站公司中哪个推广效果较好呢?黑河当地的本地网站公司是否全部外包呢?黑河的 SEO 能做到百度首页推广吗?黑河有 58 同城网站推广的电话吗?黑河的百度公司联系方式是怎样的呢?黑河的百姓网会员可以怎样推广呢?黑河的爱采购会员费用是多少呢?黑河的网络推广费用是多少呢?
杭州有网站建设案例、网站设计案例、网站制作案例等。还有杭州的网站案例。包括杭州的网站建设,以及杭州的营销型网站建设。同时还有杭州的微商城开发、手机网站制作、微信公众号开发。有杭州的高端网站建设公司,以及优秀的网站搭建与策划制作团队,并且具备深厚的网站推广运营经验。
服务热线: 手机微信同号:(各城市商务人员可上门服务)
上一页提到:“网站建设一条龙”相关内容,包括“鹤岗网站建设”“鹤岗网站 SEO 优化推广”“鹤岗网络推广”“鹤岗网页设计公司”,想了解企业网站制作公司的价格费用是多少,以及哪家比较好?还要搭建官网。
下一页内容为:【网站建设一条龙】;【赤壁网站建设】;有赤壁网站优化、赤壁网络推广、赤壁网页设计、赤壁网站制作等;还有赤壁网络公司,可用于搭建官网。
页:
[1]