哪一个最好在 jquery 中连续重复函数 setInterval 或回调函数

which one is best to repeat functions continiously either setInterval or callback function in jquery?

本文关键字:函数 setInterval 回调 连续 jquery 哪一个      更新时间:2023-09-26

实际上在我的项目中,我必须连续获得几个函数,为此我必须使用setinterval或回调.哪一个是重复函数的最佳方法,要么回调要么setInterval.lightAnim() 同样类型的函数我有超过8个.如果我使用setInterval会发生什么,如果使用回调,浏览器会发生什么.哪种方式最好。

1st way:Using setInterval
   <script>
        lightAnim();
        setInterval(lightAnim,5000);
         function lightAnim() {
            $(".bulb1").fadeIn(1000, function() {
              $(".bulb2").fadeIn(1000, function() {
               $(".bulb3").fadeIn(1000, function() {
                  $(".bulb4").fadeIn(1000, function() {
                    $(".bulb5").fadeIn(1000, function() {
                        $(".bulb6").fadeIn(1000);
                    })
                });
              });
           });
         })
       }
       </script>
2nd way:On complete i am calling again

  <script>
   lightAnim();
     function lightAnim() {
     $(".bulb1").fadeIn(1000, function() {
        $(".bulb2").fadeIn(1000, function() {
            $(".bulb3").fadeIn(1000, function() {
                $(".bulb4").fadeIn(1000, function() {
                    $(".bulb5").fadeIn(1000, function() {
                        $(".bulb6").fadeIn(1000);
                        lightAnim();
                    })
                });
            });
        });
    })
}
  </script>

回调绝对是更好的选择。

无需手动对延迟求和,也不需要在更新代码时维护它。正如您的代码所示,它更容易出错:六个一秒延迟不是 5000 毫秒。您的第一个代码段将同时为第一个和第六个灯泡设置动画。

此外,当您对单个元素进行动画处理时,动画将被链接到jQuery的动画队列中。如果计时器偏离(并且已知setInterval漂移的时间更长),那么很容易建立一个很长的队列(动画的计划速度比执行速度快),这对性能不利。