• setInterval计时器延时问题


    计时器延时问题

    js计时器


    使用setTimeout、setInterval函数时,第二个参数的设置的时间间隔t是自该函数(setTimeout(f1,t)、setInterval(f1,t))被调用时起,经过t毫秒后,f1被加入UI任务队列,但不一定执行,尤其是在期间有其他任务执行时,所以可能会有时间延时。因此使用setInterval函数制作计时器时,会出现延时。

     注意:
    javascript在遇到setInterval时足够机智,只有当任务队列中没有该定时器的实例时,才会将定时器代码添加到任务队列中。因此,定时器代码被添加到任务队列的最小时间间隔为指定的时间间隔,即至少需要经过指定的时间间隔interval,定时器才会被添加
     
    setInterval(fun,interval)
     
     
    1. var startTime = new Date().getTime();
    2. var count = 0;
    3. /*setInterval(function(){
    4. var i = 0;
    5. while(i++ < 100000000);
    6. }, 0);*/
    7. function fixed() {
    8. count++;
    9. var offset = new Date().getTime() - (startTime + count * 1000);
    10. var nextTime = 1000 - offset;
    11. if (nextTime < 0) nextTime = 0;
    12. setTimeout(fixed, nextTime); //纠正延时
    13. console.log(new Date().getTime() - (startTime + count * 1000));
    14. }
    15. setTimeout(fixed, 1000);
  • 相关阅读:
    KMP算法
    Java中的字段和属性
    Java的垃圾回收机制
    一个初学所了解的jquery事件
    jQuery选择器
    hide(1000)跟show(1000)
    show/hide
    点击消失功能
    Java中集合Set的用法
    oracle的nvl和sql server的isnull
  • 原文地址:https://www.cnblogs.com/lydialee/p/4036897.html
Copyright © 2020-2023  润新知