Javascript: no se puede obtener la altura del elemento recién creado

Después de actualizar el DOM con un nuevo elemento (ei body.append (html)), no puedo obtener inmediatamente la altura del elemento recién actualizado (por ejemplo, body.height ()). Una solución parcial es establecer un intervalo de tiempo y obtener la altura al final del intervalo de tiempo (setTimeout (“alert (body.height)”, 500)).

¿Alguna idea mejor? Como una callback después de que DOM se actualiza por completo? Gracias.

Edición: esto solo sucede cuando hay muchas cosas en segundo plano (es decir, cuando se carga la página por primera vez). Parece que la actualización de la página es casi instantánea si no se está procesando nada más. ¡Lo que necesito es una callback, o un indicador de cuándo se reforma el DOM!

Edición: el problema es que el navegador está ‘distraído’ por otros procesos, lo que hace que el navegador no pueda actualizarse inmediatamente después de agregar el elemento. ¿Cómo puedo solucionar esto?

El método de tiempo de espera funciona porque el motor de renderizado tiene la oportunidad de mostrar el nuevo elemento allí, dándole un cambio para representarlo y asignándole una altura.

Puede establecer el tiempo de espera en 0 y seguir teniendo el mismo efecto.

Con jQuery funciona bien para mí.

En la demo de jsfiddle pongo el siguiente código:

 $(function(){ var jTest = $('#test'); console.log('The height:',jTest.innerHeight(),jTest.height()); //Show me 'The height: 20 20' jTest.append('

How are you?
'); console.log('The height:',jTest.innerHeight(),jTest.height()); //Show me 'The height: 60 60' });

A menos que se refiera a la solución de solo javascript o ponga una demostración de jsFiddle para mostrar su error.