Espera a que el método .html jquery termine de renderizar

Tengo div con barra de desplazamiento vertical. Div se está actualizando dinámicamente a través de ajax y html se inserta usando el método .html de jQuery. Después de que se actualice div, la barra de desplazamiento regresa a la parte superior y estoy tratando de mantenerlo en la posición anterior.

Así es como lo estoy intentando:

var scrollPos = $('div#some_id').scrollTop(); //remember scroll pos
$.ajax({...
    success: function(data) {
        $('div#some_id').html(data.html_content); //insert html content
        $('div#some_id').scrollTop(scrollPos); //restore scroll pos
    }
});

Esto falla Mi mejor conjetura es que está fallando debido a que el html insertado no se procesa (es decir, no se desplaza).

Por ejemplo esto funciona.

setTimeout(function(){
    $('div#some_id').scrollTop(scrollPos);
}, 200);

Pero esto es truco sucio en mi opinión. No tengo forma de saber que algunos navegadores no tardarán más de 200 ms en procesar el contenido insertado.

¿Hay alguna manera de esperar a que el navegador termine de renderizar el html insertado antes de continuar?

Respuestas a la pregunta(4)

Su respuesta a la pregunta