2011-02-08 32 views

Respuesta

119

Puede utilizar el javascript setInterval incorporado.

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 si usted es el tipo más terso ...

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

No se requiere pugin Usted puede utilizar solamente jQuery.

Si desea establecer algo en un temporizador, puede utilizar setTimeout o setInterval métodos de JavaScript:

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

;

+1

setinterval es en realidad de javascript no jquery. –

3

puede utilizar setInterval() en javascript

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

uso jQuery Every time Plugin .using esto se puede hacer llamada AJAX para el período de tiempo "X"

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

también puede utilizar setInterval

+0

El enlace a _everytime_ está roto ... – nbro

+0

el enlace está roto y ¿cuál es la ventaja de esto? ¿No podemos usar setinterval en su lugar? –

5

Un poco tarde pero utilicé el método jQuery ajax. Pero no quería enviar una solicitud cada segundo si no recibía respuesta de la última solicitud, así que lo hice.

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

¿Por qué no simplemente agrega 'setTimeout (request(), 1000);' dentro de req.done y evita la necesidad de verificar el bool? – Wobbles

+0

Bueno, bien pensado. Pero el bool puede ser excelente para verificar si la solicitud se ha presentado en cualquier otro lugar del código. Decimos que solo puede hacer clic en un botón de enviar cuando la respuesta ha regresado, luego puede usar ese bool para verificar si la respuesta ha llegado o no. – linslusa

0

Encontré un muy buen plugin de jquery que puede facilitar su vida con este tipo de operación. Puede pagar https://github.com/ocombe/jQuery-keepAlive.

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