PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WEBDEV 2024 → Rafraichissement navigateur lors d'un traitement navigateur
Rafraichissement navigateur lors d'un traitement navigateur
Started by Geoffrey, Jan., 26 2021 1:25 PM - 4 replies
Registered member
9 messages
Popularité : -1 (1 vote)
Posted on January, 26 2021 - 1:25 PM
Bonjour,

Je débute webdev, il y a une fonction que j'arrive pas a trouver.

je travail sur la partie navigateur avec des ajax mais lors que je modifie les valeurs, elle ne se mettent pas a jour pendant le traitement mais a la fin du traitement. en Windev j'aurai utiliser un multitache mais je trouve pas l'équivalent en Web.

Exemple :

CelluleAfficheDialogue(POPUP_Affichage_Generation_synthese)
POPUP_Affichage_Generation_synthese.Affiche(popupCentre)
POPUP_Affichage_Generation_synthese.CELL_avancement1.JAUGE_Avancement..Valeur = 0
POPUP_Affichage_Generation_synthese.CELL_avancement1.LIB_Texte_avancement = "Préparation"

POUR i = 1 À 100
POPUP_Affichage_Generation_synthese.CELL_avancement1.LIB_Texte_avancement = "Génération doc N° "+i
POPUP_Affichage_Generation_synthese.CELL_avancement1.JAUGE_Avancement = i
FIN
CelluleFermeDialogue(CELL_avancement)

j'aurai aimer voir l'avancement de la barre d'avancement, mais du coup je vois rien du tout.

Est-ce qu'il existe une fonction pour forcer la mise a jour des champs sur le navigateur.

Merci
Registered member
948 messages
Popularité : +30 (92 votes)
Posted on January, 26 2021 - 2:33 PM
Coucou,

@Geoffrey : J'aurai aimer voir l'avancement de la barre d'avancement, mais du coup je vois rien du TOUT.




Référence: https://doc.pcsoft.fr/?1000017140

Je te propose la solution suivante :








---
#lapiraterienestjamaisfinie - Booba - Ratpi World (Clip Officiel)
Registered member
9 messages
Popularité : -1 (1 vote)
Posted on January, 26 2021 - 4:22 PM
Merci Charly pour cette réponse,

j'avais pas vu cette remarque sur la doc dsl,

J'ai pas réussi, du coup j'ai essayer de simplifier le code en retirant le popup et mettant la jauge et le libellé directement dans la page.
Mais de la même façon le rafraichissement du navigateur se fait à la fin :

Exemple :
POUR i = 1 À 100
CELL_avancement.JAUGE_Avancement..Valeur = i
CELL_avancement.LIB_SansNom11 = "Génération doc N° "+i
FIN

La valeur passe de 0 à 100 directement.

Par contre quand je suis en mode pas à pas ca fonctionne bien.
Posted on January, 26 2021 - 5:07 PM
c'est tout a fait normal, JS étant monothread dans un navigateur, il n'y a rien qui pourrait faire l'affichage PENDANT l'exécution de ton code...

Si tu tiens à ta jauge, il faut donc que ton code se fasse en plusieurs fois...
Une méthode est d'avoir ton compteur déclaré en global dans la page, et d'appeler une procédure qui fait UN tour de ta boucle, avec l'affichage de ta jauge dedans donc, et qui finit avec un timer très court qui relance la même procédure...

Entre l'exécution du tour et le suivant, il y a donc un break qui permet l'affichage
Registered member
9 messages
Popularité : -1 (1 vote)
Posted on January, 26 2021 - 6:18 PM
Ok je comprend, merci pour la réponse.

je pensais qu'il y avait une astuce plus simple, je vais tenter la procédure global,

je suis fixer comme ca :)