Appeler Jquery Ajax Demander chaque X Minutes

Comment puis-je appeler une demande Ajax dans une période de temps spécifique? Devrais-je utiliser Timer Plugin ou est-ce que jQuery a un plugin pour ça?

43
demandé sur Sufian 2011-02-08 10:04:18

7 réponses

vous pouvez utiliser le JavaScript setInterval intégré.

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

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

setInterval(ajax_call, interval);

ou si vous êtes du type plus terne ...

setInterval(function() {
  //your jQuery ajax code
}, 1000 * 60 * X); // where X is your every X minutes
122
répondu Ben 2011-02-08 07:09:47

un peu en retard mais j'ai utilisé la méthode ajax jQuery. Mais je ne voulais pas envoyer une demande toutes les secondes si je n'ai pas reçu la réponse de la dernière demande, donc je l'ai fait.

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();
5
répondu linslusa 2018-03-26 09:30:44

vous avez quelques options, vous pouvez setTimeout() ou setInterval(). voici un excellent article qui explique comment les utiliser.

la magie est qu'ils sont construits en JavaScript, vous pouvez les utiliser avec n'importe quelle bibliothèque.

4
répondu JMP 2011-02-08 07:08:13

vous pouvez utiliser setInterval() en javascript

<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
4
répondu Calvin Fan 2016-01-11 06:02:03

Pas de pugin nécessaire. Vous ne pouvez utiliser que jquery.

si vous voulez mettre quelque chose sur une minuterie, vous pouvez utiliser setTimeout ou setInterval méthodes:

setTimeout ( expression, timeout );
setInterval ( expression, interval );
3
répondu santosh singh 2018-05-10 16:44:58

utiliser jquery Chaque fois que le Plugin .en utilisant ceci vous pouvez faire appel ajax pour" X " période de temps

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

vous pouvez également utiliser setInterval

2
répondu Gowri 2011-02-08 07:29:05

j'ai trouvé un très bon plugin jquery qui peut faciliter votre vie avec ce type d'opération. Vous pouvez checkout https://github.com/ocombe/jQuery-keepAlive.

$.fn.keepAlive({url: 'your-route/filename', timer: 'time'},       function(response) {
        console.log(response);
      });//
0
répondu Olotin Temitope 2017-02-05 15:25:18