PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Fin de session lors de la fermeture du navigateur (Suite)
Fin de session lors de la fermeture du navigateur (Suite)
Iniciado por jef, mai., 20 2003 12:23 PM - 3 respostas
Publicado em maio, 20 2003 - 12:23 PM
Bonjour,

Pour rappel, le pb est de libérer les ressources et réaliser des actions
(mise à jour de base) lors de la fermeture "sauvage" du navigateur (avec la
petite croix en haut à droite). Toute les solutions proposées sont OK en
théorie (LST 51 que j'ai depuis consulté) et solution d'Alain V que j'ai
mise en oeuvre (je le remercie). Seulement toutes ces solutions ne peuvent
pas marcher tout le temps (en tout cas pas sous IE), y compris la solution
de la LST 51. En effet, ces solutions partent du principe d'un test dans le
code navigateur de déchargement de la page (onunload). Seulement voilà,
lorsque l'on utilise une ancre dans la page, par exemple, pour remonter en
début de page, ou lorsque l'on remplit une liste ou une combo dynamiquement,
ou dans tous les cas où IE se raffraichit (il y a pas mal de "post"
là-dessus d'ailleurs), et bien il y a exécution du code de déchargement de
la page et de chargement de la page. Comme il n'y a pas eu d'action
positionnant le fameux flag qui indique un chargement d'une page ou le clic
sur un lien (le positionnement de ce flag permet en effet de s'assurer à
priori que le déchargement de la page correspond à un changement de page et
non pas à une fermeture "sauvage"), et bien le code de libération de
ressources est exécuté. L'utilisateur s'étant contenté de remonter dans la
page avec une ancre HAUT se retrouve déconnecté ! Et je ne vois aucune
solution !

Mon diagnostic est-il bon ? Existe-t-il (par bonheur) une solution ?

Merci de vos commentaires...

Jef

--
Publicado em maio, 20 2003 - 2:13 PM
Bonjour Jef

Pour mon utilisation perso le partie de déconnexion se trouve en fait dans
une frame qui n'est jamais réactualisée (donc pas de blème) et qui ne peut
être fermé qu'en déconnexion sauvage ou en changeant manuellement d'adresse
URL.

Pour explication, cette frame contient des combos qui ne seront pas
modifiées puisque le cahier des charges à prévu certaines actions (un client
décidé pour une fois).

On pourrait faire un contrôle avec un second flag sur un second frame mais
là ça devient une usine à gaz.

Pour continuer : j'utilise la fonction finprogramme() en dernière ligne de
mon code se trouvant dans la page de déconnexion ( finprogramme() est bien
la dernière ligne lue) mais pourtant quand j'appel ma page de déconnexion
elle s'ouvre, une soumission au serveur a lieu mais j'obtiens le message
suivant :

Vous avez demandé à travailler sur la page 'Deconnexion' .Elle n'existe pas
ou est masquée par un objet d'un autre type (un champ par exemple).
(008, ERR_NO_PAGE)

Sachant que je développe avec W98 et que le projet se trouve sur une machine
W2kS et je test sur machine avec omnihttpd.

La session est bien éliminée et mon traitement prévu se passe bien.

Qqun a-t-il eu ce problème ?? Des hypothèses ??

Merci pour l'aide que vous m'apporter.

Alain V

"Jef" <jef@cadinfor.com> a écrit dans le message news: 3ec9f18b$1@news....
Bonjour,

Pour rappel, le pb est de libérer les ressources et réaliser des actions
(mise à jour de base) lors de la fermeture "sauvage" du navigateur (avec

la
petite croix en haut à droite). Toute les solutions proposées sont OK en
théorie (LST 51 que j'ai depuis consulté) et solution d'Alain V que j'ai
mise en oeuvre (je le remercie). Seulement toutes ces solutions ne peuvent
pas marcher tout le temps (en tout cas pas sous IE), y compris la solution
de la LST 51. En effet, ces solutions partent du principe d'un test dans

le
code navigateur de déchargement de la page (onunload). Seulement voilà,
lorsque l'on utilise une ancre dans la page, par exemple, pour remonter en
début de page, ou lorsque l'on remplit une liste ou une combo

dynamiquement,
ou dans tous les cas où IE se raffraichit (il y a pas mal de "post"
là-dessus d'ailleurs), et bien il y a exécution du code de déchargement de
la page et de chargement de la page. Comme il n'y a pas eu d'action
positionnant le fameux flag qui indique un chargement d'une page ou le

clic
sur un lien (le positionnement de ce flag permet en effet de s'assurer à
priori que le déchargement de la page correspond à un changement de page

et
non pas à une fermeture "sauvage"), et bien le code de libération de
ressources est exécuté. L'utilisateur s'étant contenté de remonter dans la
page avec une ancre HAUT se retrouve déconnecté ! Et je ne vois aucune
solution !

Mon diagnostic est-il bon ? Existe-t-il (par bonheur) une solution ?

Merci de vos commentaires...

Jef

--



Publicado em maio, 20 2003 - 5:43 PM
L'idée de la frame est intéressante. Je vais essayer d'en créer une de
taille réduite (invisible) et de solutionner de cette manière.

Si j'ai bien compris ton pb, il vient du code que tu m'as transmis sur
lequel j'avais fait 2/3 modifs. De mémoire :
- tu n'as pas besoin d'utiliser un champ invisble de la page pour conserver
la valeur de "pageadr", il suffit de la déclarer en globale à ta page et tu
peux l'utiliser en code navigateur.
- mais surtout le pb du message que tu as provient du navigateurferme() que
tu mets dans le code de chargement de la page Deconnexion. C'est trop tôt.
Il faut en fait mettre (si je me souviens bien, car je suis pas devant mon
code et ma machine, mais je pourrais te confirmer) avant FinProgramme() un
appel à une page WebFin (PageAffiche("WebFin")) qui contient effectivement,
en code de chargement navigateur, l'instruction NavigateurFerme() (et
seulement ce code). Et ça marche chez moi (toute les fenêtres se ferment
sans erreur).

Bon courage.
--
Jef
--
"SFCI Conseil - Alain" <sfci.conseil@wanadoo.fr> a écrit dans le message de
news: 3eca0af8@news....
Bonjour Jef

Pour mon utilisation perso le partie de déconnexion se trouve en fait dans
une frame qui n'est jamais réactualisée (donc pas de blème) et qui ne peut
être fermé qu'en déconnexion sauvage ou en changeant manuellement

d'adresse
URL.

Pour explication, cette frame contient des combos qui ne seront pas
modifiées puisque le cahier des charges à prévu certaines actions (un

client
décidé pour une fois).

On pourrait faire un contrôle avec un second flag sur un second frame mais
là ça devient une usine à gaz.

Pour continuer : j'utilise la fonction finprogramme() en dernière ligne de
mon code se trouvant dans la page de déconnexion ( finprogramme() est bien
la dernière ligne lue) mais pourtant quand j'appel ma page de déconnexion
elle s'ouvre, une soumission au serveur a lieu mais j'obtiens le message
suivant :

Vous avez demandé à travailler sur la page 'Deconnexion' .Elle n'existe

pas
ou est masquée par un objet d'un autre type (un champ par exemple).
(008, ERR_NO_PAGE)

Sachant que je développe avec W98 et que le projet se trouve sur une

machine
W2kS et je test sur machine avec omnihttpd.

La session est bien éliminée et mon traitement prévu se passe bien.

Qqun a-t-il eu ce problème ?? Des hypothèses ??

Merci pour l'aide que vous m'apporter.

Alain V

"Jef" <jef@cadinfor.com> a écrit dans le message news: 3ec9f18b$1@news....
Bonjour,

Pour rappel, le pb est de libérer les ressources et réaliser des actions
(mise à jour de base) lors de la fermeture "sauvage" du navigateur (avec
la

petite croix en haut à droite). Toute les solutions proposées sont OK en
théorie (LST 51 que j'ai depuis consulté) et solution d'Alain V que j'ai
mise en oeuvre (je le remercie). Seulement toutes ces solutions ne

peuvent
> > pas marcher tout le temps (en tout cas pas sous IE), y compris la
solution
de la LST 51. En effet, ces solutions partent du principe d'un test dans
le

code navigateur de déchargement de la page (onunload). Seulement voilà,
lorsque l'on utilise une ancre dans la page, par exemple, pour remonter

en
début de page, ou lorsque l'on remplit une liste ou une combo
dynamiquement,

ou dans tous les cas où IE se raffraichit (il y a pas mal de "post"
là-dessus d'ailleurs), et bien il y a exécution du code de déchargement

de
la page et de chargement de la page. Comme il n'y a pas eu d'action
positionnant le fameux flag qui indique un chargement d'une page ou le
clic

sur un lien (le positionnement de ce flag permet en effet de s'assurer à
priori que le déchargement de la page correspond à un changement de page
et

non pas à une fermeture "sauvage"), et bien le code de libération de
ressources est exécuté. L'utilisateur s'étant contenté de remonter dans

la
page avec une ancre HAUT se retrouve déconnecté ! Et je ne vois aucune
solution !

Mon diagnostic est-il bon ? Existe-t-il (par bonheur) une solution ?

Merci de vos commentaires...

Jef

--






Publicado em maio, 21 2003 - 11:25 AM
slt Jef

J'ai un peu de mal à comprendre :
Ma page de déconnexion est bien celle qui est appelé et qui va se fermer
après une procédure. Avant que j'emploie le finprogramme() en dernière ligne
de la procédure il n'y avait aucun message. Depuis que je l'ai mis avec le
fameux Multitache(...) j'ai ce message.

L'appel d'un PageAffiche("WebFin") qui va ouvrir une page dans ce navigateur
de déconnexion avant finprogramme() devrait THEORIQUEMENT poser le mm
problème non ??

Pqoi ça fonctionnerait comme çà (je t'avoue être curieux du fonctionnement).

Alain V

"Jef" <jef@cadinfor.com> a écrit dans le message news: 3eca3d4b@news....
L'idée de la frame est intéressante. Je vais essayer d'en créer une de
taille réduite (invisible) et de solutionner de cette manière.

Si j'ai bien compris ton pb, il vient du code que tu m'as transmis sur
lequel j'avais fait 2/3 modifs. De mémoire :
- tu n'as pas besoin d'utiliser un champ invisble de la page pour

conserver
> la valeur de "pageadr", il suffit de la déclarer en globale à ta page et
tu
peux l'utiliser en code navigateur.
- mais surtout le pb du message que tu as provient du navigateurferme()

que
tu mets dans le code de chargement de la page Deconnexion. C'est trop tôt.
Il faut en fait mettre (si je me souviens bien, car je suis pas devant mon
code et ma machine, mais je pourrais te confirmer) avant FinProgramme() un
appel à une page WebFin (PageAffiche("WebFin")) qui contient

effectivement,
en code de chargement navigateur, l'instruction NavigateurFerme() (et
seulement ce code). Et ça marche chez moi (toute les fenêtres se ferment
sans erreur).

Bon courage.
--
Jef
--
"SFCI Conseil - Alain" <sfci.conseil@wanadoo.fr> a écrit dans le message

de
news: 3eca0af8@news....
Bonjour Jef

Pour mon utilisation perso le partie de déconnexion se trouve en fait

dans
> > une frame qui n'est jamais réactualisée (donc pas de blème) et qui ne
peut
être fermé qu'en déconnexion sauvage ou en changeant manuellement
d'adresse

URL.

Pour explication, cette frame contient des combos qui ne seront pas
modifiées puisque le cahier des charges à prévu certaines actions (un
client

décidé pour une fois).

On pourrait faire un contrôle avec un second flag sur un second frame

mais
là ça devient une usine à gaz.

Pour continuer : j'utilise la fonction finprogramme() en dernière ligne

de
> > mon code se trouvant dans la page de déconnexion ( finprogramme() est
bien
la dernière ligne lue) mais pourtant quand j'appel ma page de

déconnexion
elle s'ouvre, une soumission au serveur a lieu mais j'obtiens le message
suivant :

Vous avez demandé à travailler sur la page 'Deconnexion' .Elle n'existe
pas

ou est masquée par un objet d'un autre type (un champ par exemple).
(008, ERR_NO_PAGE)

Sachant que je développe avec W98 et que le projet se trouve sur une
machine

W2kS et je test sur machine avec omnihttpd.

La session est bien éliminée et mon traitement prévu se passe bien.

Qqun a-t-il eu ce problème ?? Des hypothèses ??

Merci pour l'aide que vous m'apporter.

Alain V

"Jef" <jef@cadinfor.com> a écrit dans le message news:

3ec9f18b$1@news....
Bonjour,

Pour rappel, le pb est de libérer les ressources et réaliser des

actions
> > > (mise à jour de base) lors de la fermeture "sauvage" du navigateur
(avec
la
petite croix en haut à droite). Toute les solutions proposées sont OK

en
> > > théorie (LST 51 que j'ai depuis consulté) et solution d'Alain V que
j'ai
mise en oeuvre (je le remercie). Seulement toutes ces solutions ne
peuvent

pas marcher tout le temps (en tout cas pas sous IE), y compris la
solution

de la LST 51. En effet, ces solutions partent du principe d'un test

dans
le
code navigateur de déchargement de la page (onunload). Seulement

voilà,
> > > lorsque l'on utilise une ancre dans la page, par exemple, pour
remonter
en
début de page, ou lorsque l'on remplit une liste ou une combo
dynamiquement,

ou dans tous les cas où IE se raffraichit (il y a pas mal de "post"
là-dessus d'ailleurs), et bien il y a exécution du code de

déchargement
de
la page et de chargement de la page. Comme il n'y a pas eu d'action
positionnant le fameux flag qui indique un chargement d'une page ou le
clic

sur un lien (le positionnement de ce flag permet en effet de s'assurer

à
> > > priori que le déchargement de la page correspond à un changement de
page
et
non pas à une fermeture "sauvage"), et bien le code de libération de
ressources est exécuté. L'utilisateur s'étant contenté de remonter

dans
la
page avec une ancre HAUT se retrouve déconnecté ! Et je ne vois aucune
solution !

Mon diagnostic est-il bon ? Existe-t-il (par bonheur) une solution ?

Merci de vos commentaires...

Jef

--