JS cuelga en un bucle do while

Me pregunto cómo puedo resolver una página colgante con JS.

Tengo un bucle JS que estoy probando de esta manera, pero parece que se cuelga para siempre. ¿Hay alguna forma de detenerlo mientras aún se completa el script?

<div id="my_data"></div>

<script>
function test(value){
output= [];
do{ 
    value++;
    output.push(value);
    document.getElementById('my_data').innerHTML = (output.join(''));
}while(value < 10000000);
alert('end'); // never occurs
}

test(0);
</script>

Respuestas a la pregunta(6)

Su respuesta a la pregunta