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

110
Visualizações
Javascript: ajax actualizando un div con una versión anterior de un archivo actualizado

Estoy creando un tablero web y para esto tengo una función javascript que se repite infinitamente, actualizando un div particular a intervalos frecuentes. (usa ajax/jquery para hacer esto).

He usado un bucle con setTimeout:

 <!doctype html> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script type="text/javascript" language="javascript"> function updateMain() { setTimeout(function() { console.log("updating"); $('#main').load('new-content.php #main', function() {}); updateMain(); }, 3000) } updateMain(); </script> </head> <body> <div id="main"> <p>hi there</p> </div> </body> </html>

'new-content.php' es un archivo que otra parte de mi programa actualiza constantemente para mostrar el nuevo contenido para el tablero. se ve algo como esto:

 <div id="main"> <p>Hello i am updated content</p> </div>

Estoy seguro de que el ciclo está funcionando ya que los mensajes de "actualización" aparecen a intervalos regulares en la consola.

Cuando se inicia el programa, el div muestra "hola", y en el archivo new-content.php tiene "hola, soy contenido actualizado".

La primera vez que se ejecuta el ciclo, actualiza el div para mostrar "hola, soy contenido actualizado".

Pero si actualizo más el archivo new-content.php, por ejemplo para decir "hola, tengo más contenido actualizado", simplemente no se mostrará en mi página web. Sin embargo, estoy seguro de que el ciclo aún se está ejecutando ya que los mensajes aparecen en la consola.

Es como si ajax tuviera una versión en caché del archivo new-content.php que se carga al principio y luego se sigue usando para siempre.

estoy muy confundida, si me pudieras ayudar te lo agradeceria mucho

Gracias

PD: si es relevante, el sitio web se está ejecutando a través de un matraz, pero no creo que este sea el problema.

EDITAR : creo que en realidad es un problema de almacenamiento en caché del matraz

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede intentar agregar un destructor de caché para ver si eso ayuda. Cambia tu código de la siguiente manera:

 function updateMain() { setTimeout(function() { console.log("updating"); const cb = new Date().getTime(); $('#main').load('new-content.php?cb=' + cb + '#main',function() { updateMain(); }); }, 3000) } updateMain();
about 4 years ago · Juan Pablo Isaza Relatório

0

No pude resolver el problema, pero para cualquier persona que esté tratando de hacer un proyecto similar, decidí usar el matraz-socketio en su lugar, lo que me permite enviar datos a JavaScript para que se muestren en la página, en lugar de que JavaScript cargue los datos en sí. de un archivo. (la respuesta de vladtn en esta publicación SO fue útil como introducción a socketio)

about 4 years ago · Juan Pablo Isaza 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