JavaScript setInterval使AJAX每X分钟发布一次

JavaScript setInterval to make AJAX post every X number of minutes?

本文关键字:分钟 布一次 setInterval AJAX JavaScript      更新时间:2023-09-26

下面是一个JavaScript setInterval函数从一个定时器脚本我正在工作。

它基本上计算每秒钟的时间。我想做的是每隔2分钟通过AJAX请求将此时间发布到服务器。

我只需要帮助确定何时达到每2分钟,所以我可以插入我的AJAX代码。

有人能告诉我如何确定每2分钟的间隔在这个代码下面?

timer.interval = setInterval(tick = function () {
    /* Don't do anything if the timer is paused */
    if (timer.paused) return;
    /* Calculate the number of seconds from the startTime */
    var sec = M.max(M.round((Date.now() - startTime) * dir / 1000), 0);
    var val = {
        S: sec,                     /* Total number of seconds */
        s: sec % 60,                /* Seconds */
        M: M.floor(sec /= 60),      /* Total minutes */
        H: M.floor(sec /= 60),      /* Total hours */
        D: M.floor(sec /= 24)       /* Total days */
    };
    val.m = val.M % 60;             /* Minutes */
    val.h = val.H % 24;             /* Hours */
    val.d = val.D;                  /* Days */
    /* Format the timer */
    val.text = (options.format || '%-H{:}%0m:%0s').replace(
        /%(-?)(0?)([dhms])('s*)(?:'{(.+?)'})?/ig,
        options.replacer || function (match, omit, zero, part, space, forms) {
            /* The value of the selected part */
            var v = val[part];
            /*
             * 'day'      -> [ 'day', 'day', 'day' ]
             * 'day|days' -> [ 'day', 'days', 'days' ]
             */
            (forms = (forms||'').split('|'))[2] =
                forms[2] || (forms[1] = forms[1] || forms[0]);
            /*
             * Return the output text, or an empty string if the value is
             * zero and isn't supposed to be shown
             */
            return !v && omit ? '' :
                /*
                 * Initialize the output text with the value (and optionally
                 * a leading zero)
                 */
                (v > 9 ? '' : zero) + v + space +
                /* Add the appropriate form */
                forms[+(v != 1) +
                    (v != 1 && (v%10 < 2 || v%10 > 4) ||
                        (v > 10 && v < 20))];
        });
    /*
     * If we have an element, put the formatted text inside it
     * (otherwise, set "timerElem" to this instance of tinyTimer, so that it gets
     * passed to callbacks)
     */
    timerElem ? $(timerElem).html(val.text) : timerElem = timer;
    /* Invoke the onTick callback (if defined) */
    (options.onTick || doNothing).call(timerElem, timer.val = val);

}, 1000);

你可以为这个添加一个计数器,它将计算你的调用,当它将达到120然后调用ajax来发布数据

var counter  = 0 ;
timer.interval = setInterval(tick = function () {
   /// your stuff
   counter++;
   if(counter == 120)
   {
       /// make ajax call 
       /// then
       counter  = 0;
    }
}, 1000);