jquery pagina - ¿Cómo disparar la solicitud AJAX periódicamente?




2 Answers

Como otros han señalado setInterval y setTimeout harán el truco. Quería destacar una técnica un poco más avanzada que aprendí de este excelente video de Paul Irish: http://paulirish.com/2010/10-things-i-learned-from-the-jquery-source/

Para tareas periódicas que pueden llevar más tiempo que el intervalo de repetición (como una solicitud HTTP en una conexión lenta) es mejor no usar setInterval() . Si la primera solicitud no se completó y usted inicia otra, podría terminar en una situación en la que tenga múltiples solicitudes que consuman recursos compartidos y se maten de hambre entre sí. Puede evitar este problema esperando para programar la siguiente solicitud hasta que la última se haya completado:

// Use a named immediately-invoked function expression.
(function worker() {
  $.get('ajax/test.html', function(data) {
    // Now that we've completed the request schedule the next one.
    $('.result').html(data);
    setTimeout(worker, 5000);
  });
})();

Para simplificar, utilicé la exitosa devolución de llamada para la programación. La desventaja de esto es que una solicitud fallida detendrá las actualizaciones. Para evitar esto, puede usar la devolución de llamada completa en su lugar:

(function worker() {
  $.ajax({
    url: 'ajax/test.html', 
    success: function(data) {
      $('.result').html(data);
    },
    complete: function() {
      // Schedule the next request when the current one's complete
      setTimeout(worker, 5000);
    }
  });
})();
de dentro
<meta http-equiv="Refresh" Content="5">

Este script recarga o actualiza la página cada 5 segundos. Pero quiero hacerlo usando jQuery y AJAX. ¿Es posible?




Puede usar setTimeout o setInterval .

La diferencia es que - setTimeout activa su función solo una vez, y luego debe volver a establecerla. setInterval sigue activando la expresión una y otra vez, a menos que le pidas que se detenga




Related

jquery ajax

Tags

jquery   ajax