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 毫秒,那么它结束后,下一次执行就会立即开始。因此遇到特别耗时间的操作要注意。

  • 相关阅读:
    Gitlab -- 基本操作
    javascript--事件委托
    javascript--Dom 二级事件
    Tableau学习笔记之五
    Tableau学习笔记之二
    Tableau学习笔记之四
    Tableau学习笔记之三
    Tableau学习笔记之一
    Qt使用Cookies对网站操作之Get和POST
    C++ 使用Htmlcxx解析Html内容(VS编译库文件)
  • 原文地址:https://www.cnblogs.com/html55/p/9746750.html
Copyright © 2011-2022 走看看