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 : S�lectionner tout - Visualiser dans une fen�tre � part
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 : S�lectionner tout - Visualiser dans une fen�tre � part
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 !