|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
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
--
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|