Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

155
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda