Звоните jQuery Ajax Запрос каждые X минут - PullRequest
47 голосов
/ 08 февраля 2011

Как я могу вызвать Ajax-запрос в определенный период времени?Должен ли я использовать плагин Timer или jQuery имеет плагин для этого?

Ответы [ 7 ]

126 голосов
/ 08 февраля 2011

Вы можете использовать встроенный 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
7 голосов
/ 29 мая 2014

Немного поздно, но я использовал метод 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();
4 голосов
/ 08 февраля 2011

вы можете использовать setInterval() в JavaScript

<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
4 голосов
/ 08 февраля 2011

Пугин не требуется.Вы можете использовать только jquery.

Если вы хотите что-то установить для таймера, вы можете использовать методы JavaScript setTimeout или setInterval:

setTimeout ( expression, timeout );
setInterval ( expression, interval );
4 голосов
/ 08 февраля 2011

У вас есть пара вариантов, вы можете setTimeout() или setInterval(). Вот отличная статья о том, как их использовать .

Волшебство в том, что они встроены в JavaScript, их можно использовать с любой библиотекой.

2 голосов
/ 08 февраля 2011

использовать JQuery Каждый раз, когда плагин . С помощью этого вы можете сделать ajax-вызов для периода времени "X"

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

вы также можете использовать setInterval

0 голосов
/ 05 февраля 2017

Я нашел очень хороший плагин jquery, который может облегчить вашу жизнь с этим типом операции.Вы можете оформить заказ https://github.com/ocombe/jQuery-keepAlive.

$.fn.keepAlive({url: 'your-route/filename', timer: 'time'},       function(response) {
        console.log(response);
      });//
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...