PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Redirection vers page dynamique en code navigateur
Redirection vers page dynamique en code navigateur
Débuté par gilles, 18 jan. 2005 19:41 - 4 réponses
Posté le 18 janvier 2005 - 19:41
Voici mon scénario :

Page1(=formulaire) -> Page2(traitement + message"traitetement en cours") -> Page3(resultat)

Mon probleme :

J'effectue mes traitements sur la page2 puis je redirige sur la page3 avec PageAffiche().
La page2 n'est pas renvoyé au navigateur durant ni apres le traitement : la navigateur reste donc bloqué sur la page1 durant le traitement !

J'ai donc deplacé les traitements sur la page3:

Page1(=formulaire) -> Page2(message"traitetement en cours") -> Page3(traitement puis resultat)

Mais j'ai le même probleme : dans le code serveur de la page2, je met "pageAffiche(page3)" et la page2 n'est donc pas renvoyé au navigateur !

La solution serait de pouvoir appeler la page3 en code navigateur mais la fonction pageAffiche() en code navig. ne permet d'afficher que des page statique !!!!!!

Avez vous des solutions à me proposer ? je vous remercie d'avance :)
Posté le 18 janvier 2005 - 23:01
gilles a écrit :

Voici mon scénario :

Page1(=formulaire) -> Page2(traitement + message"traitetement en cours") -> Page3(resultat)

Mon probleme :

J'effectue mes traitements sur la page2 puis je redirige sur la page3 avec PageAffiche().
La page2 n'est pas renvoyé au navigateur durant ni apres le traitement : la navigateur reste donc bloqué sur la page1 durant le traitement !

J'ai donc deplacé les traitements sur la page3:

Page1(=formulaire) -> Page2(message"traitetement en cours") -> Page3(traitement puis resultat)

Mais j'ai le même probleme : dans le code serveur de la page2, je met "pageAffiche(page3)" et la page2 n'est donc pas renvoyé au navigateur !

La solution serait de pouvoir appeler la page3 en code navigateur mais la fonction pageAffiche() en code navig. ne permet d'afficher que des page statique !!!!!!


Avez vous des solutions à me proposer ? je vous remercie d'avance :)

Il faut ouvrir le contexte de la page sans l'afficher avec
contexteOuvre() et
stocker l'adresse de la page dans un champ invisible et l'utiliser en
code navigateur

//---Code serveur
ContexteOuvre(maPage)
monUrl=PageAdresse(maPage,paCOMPLETE)+"?WD_ACTION_=REFRESH"

//---Code navigateur (dans le onload de la page, dans un bouton, une
fonction, ...)
NavigateurOuvre(monUrl)
Posté le 19 janvier 2005 - 12:17
//---Code serveur
ContexteOuvre(maPage)
monUrl=PageAdresse(maPage,paCOMPLETE)+"?WD_ACTION_=REFRESH"

//---Code navigateur (dans le onload de la page, dans un bouton, une
fonction, ...)
NavigateurOuvre(monUrl)


"ContexteOuvre(page3)" execute le traitement (long) dans le code serveur de la page2 puis le serveur envoit la page2 et tres rapidement le navigateur appel la page 3 >> ceci ne resout pas mon probleme : pendant le long traitement, le navigateur reste sur la page1 :s
Posté le 19 janvier 2005 - 13:22
gilles a écrit :

//---Code serveur
ContexteOuvre(maPage)
monUrl=PageAdresse(maPage,paCOMPLETE)+"?WD_ACTION_=REFRESH"

//---Code navigateur (dans le onload de la page, dans un bouton, une
fonction, ...)
NavigateurOuvre(monUrl)



"ContexteOuvre(page3)" execute le traitement (long) dans le code serveur de la page2 puis le serveur envoit la page2 et tres rapidement le navigateur appel la page 3 >> ceci ne resout pas mon probleme : pendant le long traitement, le navigateur reste sur la page1 :s

Oui, il faut bien que le traitement se fasse. ;)

Pourquoi ne pas faire tout simplement :
Page1 (Formulaire) ouvre Page3 (Résultat)
Page3 :
- affiche "Traitement en cours"
- clic sur un bouton qui lance Page2 (en code navigateur dans le
onLoad )
ExécuteTraitement(Bouton1,trtClic)

J'ai testé avec un multitache(500) dans l'initialisation de Page2. Résultat
"Traitement en cours" s'affiche pendant 5 secondes avec Page3
puis Page2 le remplace avec le résultat.

- Pas besoin d'ouvrir plusieurs pages, les destination d'affichage sont
toutes en _self
- Pas besoin d'un ouvreContexte, on lance directement la page
Posté le 20 janvier 2005 - 10:27
Effectivement, "tout simplement" simuler un click sur bouton en code navigateur, resoud entierement le probleme :) .
Merci beaucoup pour ton aide !