码迷,mamicode.com
首页 > 其他好文 > 详细

setTimeout 与 setInterval

时间:2019-04-24 19:18:41      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:cal   alt   期望   区别   open   ring   close   时间   ide   

setTimeout 与 setInterval 实现回调本质上区别:
setTimeout(function(){
/* Some long block of code ... */
setTimout(arguments.callee,10);
},10);
setInterval(function(){
/* Some long block of code ... */
},10);
setTimeout代码至少每隔10ms以上才执行一次;
所以:如果一个计时器被阻塞执行,它将会延迟,直到下一个可执行点
(这可能比期望的时间更长)
setInterval固定每隔10ms将尝试执行,不管它的回调函数的执行状态。
所以:setInterval的回调可能被不停的执行,中间没间隔
(如果回调执行的时间超过预定等待的值)

 

技术图片
    // 天亮了
    var fade = function (node) {
      var level = 1;
      var hex = level.toString(16);
      var step = function () {
        hex = level.toString(16);
        node.style.backgroundColor = "#" + hex + hex + hex;
        if (level < 15) {
          level++;
          setTimeout(step, 60);
        } else {
          console.log("End");
        }
      }
      step();
    }
    console.time(‘time‘);
    fade(document.body);
    console.timeEnd(‘time‘);
View Code

 

setTimeout 与 setInterval

标签:cal   alt   期望   区别   open   ring   close   时间   ide   

原文地址:https://www.cnblogs.com/justSmile2/p/10764286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!