|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2008 Messages : 29 ![]() |
Bonjour à tous,
Je me retrouve devant un petit problème : je m'en remet à vous pour trouver une solution... J'ai une fonction en javascript qui contient plusieurs boucles, et qui peut mettre un certain temps à s'exécuter. Pour que les utilisateurs voient l'avancement du calcul, je voulais ajouter une barre de progression. Dans les différentes boucles, j'ai donc plusieurs appels du type Code javascript :
FenPrincipale.progression(int); C'est donc visiblement juste un blocage de la page : existe-t-il un moyen pour éviter ce blocage et pour rafraîchir l'affichage en attendant la fin de la fonction ? Un bout de la fonction pour vous donner une idée : Code javascript :
D'avance merci pour vos réponses ! |
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() eric Étudiant Inscription : décembre 2010 Messages : 103 ![]() |
Bonjour Pierro,
il semble que ton script soit long à executer. malheureusement, JS est monothread et tu ne peux executer que séquentiellement ton script. (dommage donc si tu as plusieurs cores dans ton cas...) ca que tu peux faire c'est un calcul partiel répété. tu aurais donc un truc du genre: on considère que tu fais le tour de toutes tes manches retirées, donc il faudrait que la fonction de calcul mémorise où tu en es rendu pour l'avancement du calcul sur l'équipage. tu peux utliser le retour de la fonction ou une variable globale si ton retour de fonction est déjà utilisé. ensuite, l'idée est de relancer la fonction de calcul à intervals réguliers, et tu aurais donc une boucle principale du genre Code :
Tu peux ensuite utiliser un booléen pour indiquer que tu es bien arrivé à compléter ton calcul et que tu es prêt à le refaire si nécessaire. |
||
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2008 Messages : 29 ![]() |
Merci pour ta réponse,
C'est effectivement le découpage de ma fonction qui me parait la seule solution. Je vais finalement m'orienter vers la fonction setTimeout(); qui permet de rafraîchir l'affichage : mais pour cela il faut que je découpe en petit morceaux ma fonction... Voilà ce que cela devrait donner : Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com