Js同步异步机制

本文探讨了JavaScript中定时器setTimeout和setInterval的工作原理及差异,特别是在执行动画效果时的行为表现。通过具体示例,解释了当多个动画任务并行执行时的排队机制及其对输出的影响。
  • JavaScript引擎是单线程的,强制所有的异步事件排队等待执行
  • setTimeout 和 setInterval 在执行异步代码的时候有着根本的不同
  • 如果一个计时器被阻塞而不能立即执行,它将延迟执行直到下一次可能执行的时间点才被执行(比期望的时间间隔要长些)
  • 如果setInterval回调函数的执行时间将足够长(比指定的时间间隔长),它们将连续执行并且彼此之间没有时间间隔
  • animate因为内部利用的实际是setInterval 
  • $(function(){
    for(var i=0;i<10;i++){

    $("div").animate({left:'100px',top:'0px'},1000,'swing',function({

  •         $("div").animate({left:'100px',top:'0px'},1000,'swing');
  •         console.log(2) 
  • }));

    console.log(1)
    }

    })

  • 会先打印10次 1  然后执行animate内容一次,打印10次2,最后执行剩下的9次animate
  • 若有嵌套层级关系,则根据依次排队顺序读取运行

转载于:https://www.cnblogs.com/lwboke/p/6938008.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值