Chiama jQuery Ajax Richiedi ogni X minuti

Come posso chiamare una richiesta Ajax in un periodo di tempo specifico? Dovrei usare Timer Plugin o jQuery ha un plugin per questo?

Puoi usare javascript setInterval integrato.

var ajax_call = function() { //your jQuery ajax code }; var interval = 1000 * 60 * X; // where X is your every X minutes setInterval(ajax_call, interval); 

o se sei il tipo più terso …

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

Un po ‘tardi ma ho usato il metodo jQuery ajax. Ma non volevo inviare una richiesta ogni secondo se non ho ricevuto la risposta dall’ultima richiesta, quindi l’ho fatto.

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

Avete un paio di opzioni, è ansible setTimeout() o setInterval() . Ecco un grande articolo che spiega come usarli .

La magia è che sono integrati in JavaScript, puoi usarli con qualsiasi libreria.

puoi usare setInterval() in javascript

  

Non è richiesto nessun pugin. Puoi usare solo jquery.

Se desideri impostare qualcosa su un timer, puoi utilizzare i metodi setTimeout o setInterval di JavaScript:

 setTimeout ( expression, timeout ); setInterval ( expression, interval ); 

usa jquery Ogni volta che usi Plugin , puoi fare una chiamata ajax per il periodo di tempo “X”

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

puoi anche usare setInterval

Ho trovato un ottimo plugin jQuery che può alleggerire la tua vita con questo tipo di operazione. Puoi effettuare il checkout all’indirizzo https://github.com/ocombe/jQuery-keepAlive .

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