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 :

[AJAX] Requête perdue si ouverture nouvelle page ?


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut [AJAX] Requête perdue si ouverture nouvelle page ?
    Est-ce que lorsqu'on envoit une requete xmlHTTPRequest (en asynchrone) au serveur (via la méthode AJAX) et qu'on soumet le formulaire de la page courante qui ouvre une seconde page (différente), les requêtes effectuées sur la base de données continuent malgré tout ou est-ce que tout s'arrête dès qu'on ouvre l'autre page ?

    Parce que moi, personnellement, je pense que dès qu'on ouvre une autre page, le test : (if xhr.readyState == 4) n'est plus pris en compte...

    MercI.

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Si tu changes de page tu perds ta requête comme si tu faisait stop dans
    le navigateur (a mon avis, mais j'ai pas testé)

    Par contre je comprends pas pourquoi tu as besoin de poster ton formulaire
    si tu utilise ajax ? peux-tu donner des précisions ?

  3. #3
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Citation Envoyé par marcha
    Par contre je comprends pas pourquoi tu as besoin de poster ton formulaire
    si tu utilise ajax ? peux-tu donner des précisions ?
    Ben en fait, il s'agit d'un bouton VALIDER sur une page qui permet d'enregistrer dans ma base toutes les informations contenues sur cette page et donc, par conséquent, j'effectue un retour en arrière sur la page d'avant (puisque toutes les informations sont validées, rien ne sert de rester sur cette page...)

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ouvre un popup et fasi la requete à partir de la popup ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  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
    bref, choisis xhr ou la soumission traditionnelle, mais pas les 2;

  6. #6
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Citation Envoyé par SpaceFrog
    ouvre un popup et fasi la requete à partir de la popup ?
    C'est-à-dire?

    Citation Envoyé par javatwister
    bref, choisis xhr ou la soumission traditionnelle, mais pas les 2;
    Et je fais comment pour revenir à la page du menu principal alors ?
    Moi j'aimerais un truc qui me permette de faire tourner des requêtes sur la base sans bloquer le site...(en arriere plan en fait)

    Le souci c'est que mon traitement PHP sur la base de données dure en moyenne 1 minute 20s.
    C'est plutôt gênant de faire patienter l'utilisateur tout ce temps pour rien, non?
    J'ai pourtant optimiser toutes mes requêtes, indexer ma base, "nettoyer" les données et le temps d'attente reste prohibitif malgré tout.
    (faut dire que je fais bien 150 requêtes d'un coup...)

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ben si tu lances la requête à partir de la popup et que la fenetre mère est fermée ... la connection ajax ne sera pas fermée et tu ne perdras pas la requete ...
    bon ensuite faudra coder une peu plus pour passer les reponses de la popup aux autre fenetres ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Oui mais bon ce popup il serait judicieux de le cacher alors, non?

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    en redonnant le focus à la mère ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par linar009
    Oui mais bon ce popup il serait judicieux de le cacher alors, non?
    Désolé, mais si une requête est lancée et atteint le serveur, même si le client se désiste, la requete est tout de même exécutée coté serveur (même si le client a fermé la connexion)

  11. #11
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Citation Envoyé par FremyCompany
    Désolé, mais si une requête est lancée et atteint le serveur, même si le client se désiste, la requete est tout de même exécutée coté serveur (même si le client a fermé la connexion)
    Tu es sûr?
    Donc dès que le readyState de mon xhr est à 2, je peux y aller...

  12. #12
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par linar009
    Tu es sûr?
    Donc dès que le readyState de mon xhr est à 2, je peux y aller...
    Presque... fait un test...

    if (xhr.readyState==2) {window.close()}

  13. #13
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Oui c'est parfait tout ça, mais il y a un souci dans cette démarche...
    Comment tester l'état passant à 4 (xhr.readyState==4) ?
    Parce que j'imagine que le status du xhr n'est pas défini tant que l'état n'est pas à 4... (donc pas de test possible sur xhr.status)

  14. #14
    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
    Citation Envoyé par linar009
    Le souci c'est que mon traitement PHP sur la base de données dure en moyenne 1 minute 20s.
    C'est plutôt gênant de faire patienter l'utilisateur tout ce temps pour rien, non?
    J'ai pourtant optimiser toutes mes requêtes, indexer ma base, "nettoyer" les données et le temps d'attente reste prohibitif malgré tout.
    (faut dire que je fais bien 150 requêtes d'un coup...)
    et le script aboutit quand même???

    150 requêtes, c'est assez extraordinaire (je trouve);

  15. #15
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Citation Envoyé par javatwister
    et le script aboutit quand même???

    150 requêtes, c'est assez extraordinaire (je trouve);
    Quand je dis 150 requêtes ce n'est pas 150 requêtes différentes mais plutôt une répétition de requêtes...
    Il doit y avoir 5 ou 6 requêtes mais executées une vingtaine de fois chacune.

    Et vu qu'il s'agit de update et insert, je n'ai pas vraiment le choix...
    Je ne peux pas tout regrouper dans une seule.

    Pourquoi penses-tu que le script n'aboutirait pas ?

  16. #16
    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
    je pensais juste au timeout

  17. #17
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Pourquoi il existe des timeout pour l'execution de scripts ?

  18. #18
    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
    je crois qu'en php le paramètre set_time_limit est fixé par défaut à 30s, à moins d'un safe_mod;

  19. #19
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Ah ouais tu dois avoir raison :
    Au delà d' 1min 30 s, tout s'arrête et le navigateur m'affiche : "Aucune page à afficher"

    Va falloir que je regarde ça de plus près

Discussions similaires

  1. Formulaire en POST avec ouverture nouvelle page en mode strict
    Par jpmur dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 24/03/2009, 14h50
  2. ouverture dans nouvelle page
    Par yael_s dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/12/2006, 16h23
  3. [vb.net] linkButton, ouverture dans une nouvelle page
    Par tasnep. dans le forum ASP.NET
    Réponses: 12
    Dernier message: 25/08/2006, 11h31
  4. popup : ouverture d'une nouvelle page
    Par kikou33 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/08/2005, 17h07

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