• JS定时器使用,定时定点,固定时刻,循环执行


    本文概述:本文主要介绍通过JS实现定时定点执行,在某一个固定时刻执行某个函数的方法。比如说在下一个整点执行,在每一个整点执行,每隔10分钟定时执行的方法。

    JavaScript中有两个定时器方法:setTimeout()和setInterval()。

    这两个方法都可以用来实现在一个固定时间段之后去执行JavaScript。实际上,setTimeout和setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,或者函数名,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。

    不过这两个函数还是有区别的:

    ① setInterval()会多次执行要定时执行的代码或函数。经过了那个固定的时间间隔,它还会自动重复执行代码。

    ② setTimeout()只会执行一次那段代码或者指定的函数。

    1.循环执行

    下面的JS语句实现的是每过十分钟执行一次circulateExecute()方法。

    //循环执行,每十分钟一次。10分钟后第一次执行。
           setInterval("circulateExecute();",10*60*1000);//10分钟执行一次

    2.下一个整点,或者某个时刻定点执行

    以下javascript代码实现的是实现在当前时刻的下一个整点定点执行nextIntegralPointAfterLogin()方法。

     var date = new Date();//现在时刻
    var dateIntegralPoint = new Date();//用户登录时刻的下一个整点,也可以设置成某一个固定时刻
    dateIntegralPoint.setHours(date.getHours()+1);//小时数增加1
    dateIntegralPoint.setMinutes(0);
    dateIntegralPoint.setSeconds(0);
    setTimeout("nextIntegralPointAfterLogin();",dateIntegralPoint-date);//用户登录后的下一个整点执行。

    3.每一个整点定点执行

    通过上面介绍的在下一个整点执行nextIntegralPointAfterLogin()函数后,为了实现在每一个整点都执行某函数,可以在nextIntegralPointAfterLogin()函数中写上以下代码。

    function nextIntegralPointAfterLogin(){

             IntegralPointExecute();//在整点执行的函数,在每个整点都调用该函数
    setInterval("IntegralPointExecute();",60*60*1000);//一个小时执行一次,那么下一个整点,下下一个整点都会执行

    }

    注意:由于JS计算的误差以及执行过程中需要一定的时间,所以上述定时定点执行方法可能会有一两秒的误差。
    ————————————————
    版权声明:本文为CSDN博主「daydayupzzc」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/daydayupzzc/article/details/38817343

    文中定时器中的参数 ‘dateIntegralPoint - date’ 为当前时间和下个需要执行定时器事件的毫秒差
  • 相关阅读:
    Zero-Copy&sendfile浅析
    Redis数据清除问题
    Redis官方文档》持久化
    GNU C 、ANSI C、标准C、标准c++区别和联系
    有关jQuery valid 验证多个同name属性的input的问题
    jQuery validator 增加多个模板
    archiver error. Connect internal only, until freed. 之解决办法
    链接ftp,把文件或图片上传到ftp指定的文件夹中
    java 数字金额转换中文金额
    java工具类 --千分位方法
  • 原文地址:https://www.cnblogs.com/yearshar/p/11528330.html
Copyright © 2020-2023  润新知