web-dev-qa-db-fra.com

Appelez jQuery Ajax Request X Minutes

Comment puis-je appeler une requête Ajax dans une période de temps spécifique?

45
Shahin

Vous pouvez utiliser le setInterval javascript 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 laconique ...

setInterval(function() {
  //your jQuery ajax code
}, 1000 * 60 * X); // where X is your every X minutes
124
Ben

Un peu tard mais j'ai utilisé la méthode jQuery ajax. 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.

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();
7
linslusa

Vous avez plusieurs 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
JMP

Pas de pugin requis. Vous ne pouvez utiliser que jQuery.

Si vous souhaitez définir quelque chose sur une minuterie, vous pouvez utiliser les méthodes setTimeout ou setInterval de JavaScript:

setTimeout ( expression, timeout );
setInterval ( expression, interval );
4
santosh singh

vous pouvez utiliser setInterval() en javascript

<script>
//Call the yourAjaxCall() function every 1000 millisecond
setInterval("yourAjaxCall()",1000);
function yourAjaxCall(){...}
</script>
4
Calvin Fan

use jquery Chaque fois que Plugin . en utilisant cela, vous pouvez faire un appel ajax pendant une période "X"

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

vous pouvez aussi utiliser setInterval

2
Gowri

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

$.fn.keepAlive({url: 'your-route/filename', timer: 'time'},       function(response) {
        console.log(response);
      });//
0
Olotin Temitope