ProgressBar, communication jscript/html dans un for
Bonjour, je me penche actuellement sur la réalisation d'une progress bar, gérer non pas par le temps, mais par l'execution d'un script.
Je traite un tableau dans une boucle for, j'ai donc penser a deux solutions, dont aucune n'a marché :
-a chaque tour de boucle faire un innerHTML pour agrandir une div (ou modifier un texte pour afficher le pourcentage)
-creer un timer qui appelerait une fonction modifiant le html via des variable global que je modifie dans mon for
mon code ressemble donc a sa pour la premiere solution :
Code:
1 2 3 4 5 6
| for(i ; i < tab.length ; i++)
{
//Execution du traitement du tableau
ProgressBar.innerHTML = "<font color=\"0x00FF\" >"+Math.round(((i/tab.length)*100))+"%</font>";
} |
ou a sa :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
//Variable Global
var iGlobal ;
var iTotal ;
//[...]
timer = new Timer() ; //j'ai une classe timer a ma disposition qui appel une fonction toute les seconde
iTotal = tab.length ;
timer.function = "UpdateProgressBar()"
for(i ; i < tab.length ; i++)
{
iGlobal = i ;
//Execution du traitement du tableau
}
//[...]
function UpdateProgressBar ()
{
ProgressBar.innerHTML = "<font color=\"0x00FF\" >"+((iForTimer/iTotalForTimer)*100)+"%</font>";
} |
Le souci c'est que je ne sais pas pourquoi, mais cela ne veux pas s'updater dans le for, le pourcentage passe de 0% à 100% d'un coup, dans les deux cas.
Y a t-il des propriétés de communication entre jscript et html qui empêcherait le html de s'actualiser a l’intérieur d'une boucle ?
Ou si vous avez une solution sympa qui marcherait (je ne peux me permetre d'utiliser que du jscript, pas de jQuery, ou autre AJAX, etc)
Merci !