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

561
Visualizações
¿Jquery append () se comporta de forma asíncrona?

He visto varias publicaciones ( añadir supuestamente inmediatas ) con respuestas aceptadas contradictorias sobre esto. Estamos usando JQuery 1.4 ( http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js ) y append() parece ser asíncrono, de modo que:

Editado para mostrar el código en el contexto de la devolución de llamada de AJAX

 ... var message = $.ajax({ type: "GET", url: "/getVolumes/" + _Id, async: false }).responseText; if (parseInt(message) != 0){ var $results = $(message); $MAIN_DIV.append($results); retrieveTargets(); } ... function retrieveTargets(){ var $targets = $(".resultTargets"); }

Ejecuta y crea la página como se esperaba, pero la consulta de destino no arroja nada en tiempo de ejecución. Ejecutar el mismo código en la consola JS recupera los elementos como se esperaba.

Si este es el comportamiento esperado en JQuery, ¿cuál es la forma correcta de esperar hasta que finalice la adición?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Todos los comentarios ayudaron a rastrear esto. Estaba siguiendo una pista falsa en la consola. El problema no estaba en la sincronicidad, estaba en las siguientes líneas:

 $targets.each( function(){ ... this.html(); ...

necesitaba ser

 $(this).html();

En resumen, todos tenían razón. Jquery append() se comporta sincrónicamente.

over 4 years ago · Santiago Trujillo Relatório

0

Prueba esto, si las cosas no funcionan después de un append .

 $('#dynamic-container').append(<your-content>) ; setTimeout(function() { ...code which addresses elements inside #dynamic-container... },0) ;

Más detalles:

  • Aparentemente append es sincrónico
  • Aparentemente, el DOM no se actualiza sincrónicamente, especialmente en Google Chrome. Enfrenté este problema al intentar recuperar la altura de un div después de append
  • Mi suposición era que había subprocesos de actualización del navegador que se actualizaban de forma asíncrona, más comentarios sobre eso a continuación, aún no estoy claro sobre cómo funcionan las cosas, pero la solución funciona en todos los casos para mí.
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