IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Body on Unload


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut Body on Unload
    Bonjour,

    J’ai un petit souci auquel je ne trouve pas de solution : J’ai un script qui fonctionne apparemment avec certains navigateurs, et pas avec d’autres : L’idée, c’est que une page "accueil.php" reçoit les internautes, et au moment du chargement, elle contient un script php qui crée un répertoire temporaire (oui oui, je suis dans le forum javascript je sais). Dans la partie head, j’ai le script suivant :
    <code>
    function fin_session()
    {
    window.open('mafindesession.php?mavar=<? echo $mavar ?>&mavar=<? echo $mavar1 ?>&mavar2=<? echo $mavar2 ?>','','toolbar=no,menubar=no,location=no,height=1,width=1, alwaysLowered=1');
    }
    </code>

    La partie body :

    <code>
    <BODY onunload="fin_session()";>
    </code>

    A la fermeture de la page "accueil.php", ça appelle une nouvelle page "mafindesession.php" qui doit détruire les répertoires temporaires si les variables contiennent une valeur. Chez moi (sous explorer et mozilla, les dernières versions) ça marche. Apparemment je constate que certains navigateurs n’exécutent pas le script.

    Auriez-vous une conseil ?

    Olé

  2. #2
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Sais-tu que le onunload va être exécuté à chaque changement de page ?
    De plus, les utilisateurs ayant désactivé JavaScript n'auront pas leur répertoire temporaire détruit. Sans oublier non plus qu'un navigateur ça peut planter et donc se fermer sans exécuter ton script.

    Donc je ne pense pas que ça soit la meilleur solution que de laisser javascript s'occuper de la fin de session.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut Body on Unload
    Bonjour et merci pour la réponse.

    C'est vrai que c'est vraiment pas une bonne solution d'utiliser javascript pour faire ça.
    Mais l'histoire, c'est que je dois déclencher une action qui va détruire ce répertoire temporaire une fois qu'il a été téléchargé, et la seule manière que j'ai trouvé de détecter la fin du téléchargement, c'est de dire à l'internaute de ne pas fermer la fenêtre qui contient le body unload, avant la fin du téléchargement..... j'ai pas trouvé de meilleure solution, disons que ça m'assure la destruction du répertoire dans environ 70% des cas... Mais si une autre solution existe... je serais très heureuse d'être mise sur la piste. Y'en aurait-il une?

    Merci d'avance

    Olé.

  4. #4
    Membre émérite
    Avatar de Celelibi
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 087
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 087
    Par défaut
    Moi je te conseillerais de laisser ce répertoire temporaire pour une durée déterminée.
    Par exemple si tu estime qu'en une heure 99% des gens auront eut le temps de télécharger ce répertoire, alors tu peux avoir un script php qui s'exécute periodiquement (tous les quart d'heure par exemple) et qui efface tous les répertoirs qui ont été créés il y a plus d'une heure.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    voui, estimer un délai à l'arrache, dans ce cas, c'est moins grave que pour un chat php par exemple;

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut Body on Unload
    Bonjour et merci pour la réponse.
    En fait je savais pas que c'est possible de déclencher un script php sans lancer une page, étant donné que le php est interprété au chargement d'une page.. ou je me trompe? C'est une bonne piste en tout cas. Si quelqu'un peut m'en dire un peu plus sur la manière d'appeler le script, à quelle action il devrait se déclencher par exemple... ça m'aiderait.
    Merci!
    Olé.

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/10/2005, 14h56
  2. CSS body firefox
    Par duktil dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 03/12/2004, 09h41
  3. Inclure un bloc style dans le body
    Par zoullou dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 29/11/2004, 11h00
  4. problemeavec la balise <body>
    Par NetSky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 30/10/2004, 21h48
  5. Ajout d'attribut à l'élément "Body"
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 07/04/2003, 15h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo