每X分钟调用jQuery Ajax请求

如何在特定时间段内调用Ajax请求?我应该使用Timer插件还是jQuery为此提供插件?

Shahin asked 2020-02-21T15:07:04Z
7个解决方案
126 votes

您可以使用内置的javascript setInterval。

var ajax_call = function() {
  //your jQuery ajax code
};

var interval = 1000 * 60 * X; // where X is your every X minutes

setInterval(ajax_call, interval);

或者如果您是更简洁的类型...

setInterval(function() {
  //your jQuery ajax code
}, 1000 * 60 * X); // where X is your every X minutes
Ben answered 2020-02-21T15:07:40Z
7 votes

有点晚了,但是我使用了jQuery ajax方法。 但是,如果我没有收到上一个请求的响应,就不想每秒发送一个请求,所以我这样做了。

function request(){
            if(response == true){
                // This makes it unable to send a new request 
                // unless you get response from last request
                response = false;
                var req = $.ajax({
                    type:"post",
                    url:"request-handler.php",
                    data:{data:"Hello World"}
                });

                req.done(function(){
                    console.log("Request successful!");

                    // This makes it able to send new request on the next interval
                    response = true;
                });
            }

            setTimeout(request(),1000);
        }

        request();
linslusa answered 2020-02-21T15:08:00Z
4 votes

您有两种选择,可以是setTimeout()setInterval()。这是一篇很棒的文章,详细说明了如何使用它们。

魔术是它们内置在JavaScript中,您可以在任何库中使用它们。

JMP answered 2020-02-21T15:08:24Z
4 votes

您可以在javascript中使用setInterval()

<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
Calvin Fan answered 2020-02-21T15:08:45Z
4 votes

无需插件。 您只能使用jquery。

如果要在计时器上进行设置,可以使用JavaScript的setTimeoutsetInterval方法:

setTimeout ( expression, timeout );
setInterval ( expression, interval );
santosh singh answered 2020-02-21T15:09:09Z
2 votes

每次使用Plugin时都使用jquery。使用此方法,您可以在“ X”时间段内进行ajax调用

$("#select").everyTime(1000,function(i) {
//ajax call
}

您也可以使用setInterval

Gowri answered 2020-02-21T15:09:35Z
0 votes

我发现了一个非常好的jquery插件,可以通过这种操作减轻您的生活。 您可以结帐[https://github.com/ocombe/jQuery-keepAlive。]

$.fn.keepAlive({url: 'your-route/filename', timer: 'time'},       function(response) {
        console.log(response);
      });//
Olotin Temitope answered 2020-02-21T15:09:55Z
translate from https://stackoverflow.com:/questions/4930439/call-jquery-ajax-request-each-x-minutes