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 :

Exécution de fonctions multi fenetres


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut Exécution de fonctions multi fenetres
    Bonjour, voilà mon soucis :

    j'ai une fenêtre ouverte sur un navigateur (firefox).
    sur cette fenêtre, j'ai un bouton qui affiche une popup (donc une autre fenêtre).
    sur cette popup, j'ai aussi un bouton mais qui lui appèle une fonction de son parent (window.opener).

    En fait cette fonction fait appel à HttpRequest.

    Mon problème :
    lorsque j'utilise le bouton pour éxécuter la fonction, tout se passe bien : la fonction s'éxécute sur la fenetre parente.
    il y a un temps d'attente (lié au HttpRequest) et si j'attends, pas de soucis (message alert de JS : fini)
    mais si avant ce message, je ferme la popup (qui elle n'éxécute pas de fonction), la fenêtre parente n'affichera jamais le alert de fin.

    Si quelqu'un peut me dépanner sur ce sujet...
    merci d'avance

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    la fonction est déclarée dans l'opener. Mais lors de l'appel à partir de la pop, l'instance de la fonction est bien associée à la pop : si la fonction retourne une valeur, c'est la pop (instance) qui la récupère, pas l'opener (déclaration).
    Si tu fermes la pop, tu kill l'instance de la fonction. Donc tu n'as pas d'alert() ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    Merci pour l'explication.

    Mais je reste un peu bloqué tout de même et donc ma question :

    Y a t il une solution qui fasse de même ?

    J'explique mon problème au complet :

    Sur une fenetre, je coche des gens
    J'ai un bouton mailing qui ouvre une popup
    dans cette popup, on tape son texte
    puis on envoie le massmailing...

    le soucis est que je dois envoyé 2000 mails (pas tous les jours qu'en meme) et que cela prend 30 minutes (environ en fonction des images et pieces jointes)
    et cela bloque la fenetre-popup et donc l'application que je développe.

    Ainsi je me suis dit vive l'asynchrone et là boum...

    Donc voilà mon soucis, et s'il existe une solution, j'apprécierai grandement

    merci

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par djtadpole
    le soucis est que je dois envoyé 2000 mails (pas tous les jours qu'en meme) et que cela prend 30 minutes (environ en fonction des images et pieces jointes)
    et cela bloque la fenetre-popup et donc l'application que je développe.
    Plusieurs questions me viennent (en vrac) :
    * c'est bien ton serveur qui les envoie ?
    * pourquoi ça te bloque ? Tu développes sur une version en prod ou quoi ?
    * Tu ne peux pas lancer une 2° instance de ton appli ?
    ... heu je vais arrêter là : les suivantes risquent d'être stupides en fonction des réponses aux 1° ....
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    c'est bien ton serveur qui les envoie ?
    -> oui via smtp derriere une box

    pourquoi ça te bloque ? Tu développes sur une version en prod ou quoi ?
    -> oui je suis en train de développer un ENT (Espace Numérique de Travail)

    Tu ne peux pas lancer une 2° instance de ton appli ?
    -> ??? le pb est que j'ai un peu des newbies comme utilisateurs

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Ahh !
    Citation Envoyé par djtadpole
    -> ??? le pb est que j'ai un peu des newbies comme utilisateurs
    "Toi", c'est en fait tes utilisateurs ?
    Je vois mieux !
    ... enfin, le pb

    En solution j'en vois 2 (mais y aura sûrement mieux) :
    * avertir l'utilisateur que le traitement est en cours, s'il essaye de fermer la pop avec onbeforeunload du <body> (peu fiable)
    * à moins qu'elle soit modale, passer ta pop en arrière plan, pour pouvoir utiliser la page mère (en fait ça revient à redonner simplement le focus à la page mère) (pas hyper secure non plus)



    PS : en asynchrone, au moins, y aurait rien de bloquer sur le poste ...
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 29
    Points : 26
    Points
    26
    Par défaut
    merci pour les soluces,
    je pense combiner les 2

    si j'ai une autre solution, je la communiquerai...

    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 16h10
  2. [question] application multi fenetre
    Par osoumayaj dans le forum JBuilder
    Réponses: 1
    Dernier message: 18/01/2006, 23h30
  3. exécution de fonction
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/09/2005, 16h50
  4. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 13h59
  5. [VB.NET] Exécuter une fonction VB sur un Datagrid
    Par MiJack dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/09/2004, 14h45

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