Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

211
Vistas
Repita la llamada jQuery ajax

¿Cómo repetir la llamada jQuery ajax cada 10 segundos?

 $(document).ready(function() { $.ajax({ type: "GET", url: "newstitle.php", data: "user=success", success: function(msg) { $(msg).appendTo("#edix"); } });

Intenté envolver el $.ajax con una función y llamar a la función con setInterval

 $(document).ready(function() { function ajaxd() { $.ajax({ type: "GET", url: "newstitle.php", data: "user=success", success: function(msg) { $(msg).appendTo("#edix"); } }); } setInterval("ajaxd()",10000); });

Pero dice "ajaxd no está definido"

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Su método no debe colocarse dentro del método listo , o solo estaría disponible allí y no fuera.

 $(document).ready(function() { setInterval(ajaxd, 10000); }); function ajaxd() { $.ajax({ type: "GET", url: "newstitles.php", data: "user=success", success: function(msg){ $(msg).appendTo("#edix"); } }); }
over 4 years ago · Santiago Trujillo Denunciar

0

Un mejor enfoque sería usar setTimeout , por lo que solo realiza una solicitud cuando finaliza la anterior.

como se debe hacer

Imagine que la solicitud por alguna razón (mal funcionamiento del servidor, error de red) toma más tiempo del definido. Tendrás muchas solicitudes simultáneas, lo cual no es nada bueno. ¿Y si decide acortar la diferencia de tiempo de 10 segundos a 1 segundo en el futuro?

 $(function() { var storiesInterval = 10 * 1000; var fetchNews = function() { console.log('Sending AJAX request...'); $.ajax({ type: "GET", url: "newstitles.php", data: { user: 'success', some: ['other', 'data'] } }).done(function(msg) { $(msg).appendTo("#edix"); console.log('success'); }).fail(function() { console.log('error'); }).always(function() { // Schedule the next request after this one completes, // even after error console.log('Waiting ' + (storiesInterval / 1000) + ' seconds'); setTimeout(fetchNews, storiesInterval); }); } // Fetch news immediately, then every 10 seconds AFTER previous request finishes fetchNews(); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Lo sé, después de 6 años. Pero aún así, pensé que valía la pena para otras personas.

¿Por qué el código del OP no funcionó?

Vale la pena señalar que su código no funcionó principalmente porque pasó su llamada a la función ajaxd() como una cadena a setInterval . No es una buena práctica , en parte porque setInterval esperará que las funciones se definan globalmente . Debe usar la referencia a una función, como en mi ejemplo. De esa manera, no importa dónde esté definida su función y si es anónima o no.

over 4 years ago · Santiago Trujillo Denunciar

0

$(document).ready(function() { setInterval(function() { $.ajax({ type: "GET", url: "newstitle.php", data: "user=success", success: function(msg){ $(msg).appendTo("#edix"); } }); }, 10000); });
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda