Je suis sûr que cela a été demandé 1000 fois avant, fondamentalement tout ce que je veux faire est de changer le contenu d'un élément de la page pour afficher un message de chargement pendant mon autre code javascript intensif) se termine. Le problème est que le message n'est pas affiché jusqu'à ce que "l'autre traitement JS" soit terminé, ce qui annule complètement son but. un exemple simplifié ...Javascript de base message de chargement tandis que le traitement js termine
<html>
<head>
<title> crappity crapness </title>
<script type="text/javascript">
function showMessage(){
document.getElementById("content").innerHTML = "please wait while we waste some time";
}
function wasteTime(){
//alert("oh joy");
pausecomp(3000);
//alert("marvelous!");
}
function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while(curDate-date < millis);
}
</script>
</head>
<body>
<div id="content">Blah</div>
<br/>
<a href="http://www.google.com" onclick="showMessage(); wasteTime();"> link </a>
</body>
si je décommenter le « oh joie » d'alerte, le texte dans la div est mis à jour immédiatement. comment puis-je le faire fonctionner sans l'alerte?
Je sais qu'il me manque quelque chose de simple. Merci
bonne explication, Merci pour cela. J'espérais le faire sans utiliser setTimeout (comme c'était la validation dans le onSubmit d'un formulaire), mais il semble qu'il n'y ait pas d'autre moyen. de toute façon, je suppose qu'un délai d'une milliseconde n'est pas trop mauvais! – hendinas