Como faço para dizer ao javascript para atualizar imediatamente o DOM?

Eu estou tentando carregar uma mensagem de 'carregamento' para o usuário antes de uma função de uso intensivo de tempo é chamada em javascript.

HTML:

<p id='foo'>Foo</p>​

Javascript:

var foo = document.getElementById('foo');

function tellViewerLoading() {
  // Tell the user that loading is occuring.
  foo.innerHTML = 'loading...';   
}

function someActionThatTakesALongTime() {
  // Do some action that takes a long time.
  var i = 0;
  while(i < 100000) {i++; console.log(i);};
}

function domUpdateDelayExperiment() {
  tellViewerLoading();
  someActionThatTakesALongTime();
}

domUpdateDelayExperiment();

JSFiddle:http://jsfiddle.net/johnhoffman/xDRVF/

O que eu quero que aconteça é que o DOM seja atualizado imediatamente apóstellViewerLoading() é chamado.

Em vez disso, o que acontece é que o DOM parece ser atualizado depoissomeActionThatTakesALongTime() termina em execução. Nesse ponto, é inútil exibir uma mensagem de carregamento.

Como faço para dizer ao javascript para atualizar imediatamente o DOM depoistellViewerLoading() é chamado?

questionAnswers(2)

yourAnswerToTheQuestion