Как правило, когда выполняется код JS, все остальные операции рендеринга останавливаются, как и то, что вы видите. Вы можете попробовать использовать функцию setTimeout, чтобы разрешить рендеринг на вашей странице следующим образом:
doStuff();
$('#myDiv').html('Almost done, please wait');
setTimeout(doMoreStuff, 50);
Обратите внимание, что doMoreStuff - это еще одна функция, которая будет выполнять последнюю часть вашей обработки.
Если ваш код может быть разделен таким образом, это позволит браузеру войти в некоторые циклы рендеринга. Возможно, вы захотите поэкспериментировать с задержкой (50 выше), чтобы найти число, которое работает для вас, но если все, что вы хотите сделать, это установить содержимое div, тогда 50 должно быть в порядке (возможно, даже 0 будет работать). *
Кроме того, я не могу вспомнить синтаксис jQuery для установки innerHTML, но я думаю, что дело дошло:)