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

555
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 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