Barre de progression pendant un traitement

Résolu
dijacou Messages postés 3 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 juin 2011 - 31 mars 2007 à 14:58
iliastjrs Messages postés 1 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 31 mars 2007 - 31 mars 2007 à 20:57
Bonjour,
J'ai une page html qui traite, après appui sur un bouton, un fichier excel via un javascript et met à jour une base access.
Je veux afficher une barre de progression (DIV de taille variable) au fur et à mesure du traitement des lignes excel.
Hélas, le traitement ne rendant pas la main à l'affichage, la barre ne s'actualise qu'à la fin du traitement, ce qui manque d'intéret.
J'ai essayé également avec un timer (settimeout et setinterval) mais le timer ne semble pas agir tant que le traitement tourne.
Comment faire pour actualiser l'affichage pendant qu'un script se déroule?

N'ayant pas trouvé sur les forums un problème similaire (sauf en vb.net mais je souhaite rester "léger", éviter des activex), je vous remercie d'avance de votre aide.

Mon environnement : XP + IE; la page est accessible sur un disque partagé du réseau, je ne passe pas par une adresse http.

3 réponses

dijacou Messages postés 3 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 juin 2011
31 mars 2007 à 20:48
Merci pour ce conseil : // et plus rien ici, plus d'instructions !

J'ai compris le mécanisme. Pour transformer un traitement traditionnel

traitement debut
pour chaque ligne
    fonction_ligne
suivante
traitement fin

il faut écrire

traitement début
positionner sur première ligne
fonction_ligne
    traiter la ligne
    suivante
    settimeout(fonction_ligne) si pas dernière
    sinon lancer traitement fin

C'est le timer qui relance la boucle

Merci encore.
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
31 mars 2007 à 15:23
Bonjour,

>>éviter des activex
    bof... comme     >>...un fichier excel via un javascript et met à jour une base access.
    il y en a déjà.. non ?
   
    fonction(....)
    {
       traitements...
       maj barre de progression
       setTimeout("fonction();",délai);
       // et plus rien ici, plus d'instructions !
    }



<hr />




Cordialement            Bul    
0
iliastjrs Messages postés 1 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 31 mars 2007
31 mars 2007 à 20:57
ezfgefg
0
Rejoignez-nous