zoukankan      html  css  js  c++  java
  • setInterval的简单理解和实验

    setInterval的用法

    setInterval(fn_name,time_num); 

    setInterval(fn_name,time_num,这里是前面函数fn_name的参数); 

    意思是,现在先不执行fn_name,然后过time_num毫秒执行一次fn_name,过time_num毫秒执行一次fn_name,就这样不停的执行,关了窗口或者用了clearInterval才停止。函数fn_name参数可以放在time_num后面。

    注意,函数名不要加引号,那样成字符串了。如果不写函数名,写匿名函数也可以。代码举例

    1 //用法1,里面是匿名函数
    2         setInterval(function(){
    3                 //要做点什么的代码在此
    4         },1000);

    或者

    1 //用法2,注意函数名不要用引号引起来了,也不要在后面加()
    2         function fn1(){
    3             //要做点什么的代码在此
    4         }
    5         setInterval(fn1,1000);

    问题1:setInterval设置某个函数执行后,那么他后面的代码会继续执行吗?还是等着他执行结束再执行?

    设计测试代码如下:
    1         var i=0;
    2         setInterval(function(){
    3             i++;
    4             console.log(i); // 8秒后才显示这里
    5         },8000);
    6         
    7         console.log(i); // 先执行了这里
    
    

    结果是,先显示出0, 过了8秒钟显示1,过了8秒再显示一次2,。。。。表明了“先不执行某个函数,然后过多久执行一次,过多久再执行一次,以此类推”

     问题2:setInterval设置执行函数fn1,间隔时间为100毫秒,而函数fn1执行过程所需要的时间5ms,那么他是100ms执行一次,还是105ms执行一次?

    setInterval指定的是“开始执行”之间的间隔,并不考虑每次任务执行本身所消耗的时间。比如,setInterval 指定每 100ms 执行一次,而每次执行需要 5ms,那么第一次执行结束后 95 毫秒,第二次执行就会开始。如果某次执行耗时特别长,比如需要 105 毫秒,那么它结束后,下一次执行就会立即开始。因此遇到特别耗时间的操作要注意。

  • 相关阅读:
    李开复给中国学生的第二封信:从优秀到卓越
    李开复写给中国学生的一封信:从诚信谈起
    Cocos2D-x培训课程
    CCLabelAtlas创建自定义字体
    cocos2d-x设计模式发掘之五:防御式编程模式
    【转】VS2010中使用AnkhSvn
    cocos2d-x 2.1.4学习笔记01:windows平台搭建cocos2d-x开发环境
    【转】Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
    ffmpeg开发中出现的问题(二)
    ffmpeg开发中出现的问题
  • 原文地址:https://www.cnblogs.com/html55/p/9746750.html
Copyright © 2011-2022 走看看