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

AJAX Discussion :

[AJAX] Ajax/Php fixe sur la meme page


Sujet :

AJAX

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut [AJAX] Ajax/Php fixe sur la meme page
    salut a tous,

    J'ai fait une appli en php et je rencontre un probleme d'ajax.
    Je permets aux utilisateurs de rafraichir la bdd en cliquant sur un bouton.
    Mon script tourne pendant 4 minutes.

    Je ne sais pas comment faire pour que les gens puissent continuer a surfer sur le site sans que la page fix pendant 4 minutes.

    J'ai affiche un message: revenez dans 5 min... mais ils ne peuvent pas changer tant que l'ajax n'a pas fini de tourner...
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a class="refresh" href="#" onclick="javascript:refreshWhole('<?php echo $domain->domainid;?>');">Refresh /</a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    function refreshWhole(siteId){
    	var query = 'siteid=' + siteId + '&type=whole' ;
     
    	document.getElementById("resultrefresh" + siteId).style.display = "block";
    	refresh (query, siteId);
    	return false;
    }
    function refresh(query, siteId){
    	var xhr=null;
     
     
    	if(window.XMLHttpRequest){
    		xhr=new XMLHttpRequest()
    	}else{
    		if(window.ActiveXObject){
    			try{xhr=new ActiveXObject("Msxml2.XMLHTTP")}
    			catch(e){xhr=new ActiveXObject("Microsoft.XMLHTTP")}}
    		else{
    			alert("Your explorer doesnt support XMLHTTPRequest...");xhr=false
    		}
    	}
     
    	xhr.open("POST",'serp.php',true);
    	xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    	xhr.setRequestHeader("Pragma","no-cache");
    	xhr.setRequestHeader("Cache-Control","no-cache");
    	xhr.setRequestHeader("Expires","-1");
    	xhr.onreadystatechange=function(){
    		if(xhr.readyState==4&&xhr.status==200){
    			updatepageRefresh(xhr.responseText, siteId)
    		}
    	};
    	xhr.send(query);
     
    }
    function updatepageRefresh(str, siteId){
    	document.getElementById('resultrefresh' + siteId).innerHTML=str;
    }
    et puis si les utilisateurs changent de pages, je veux que mon script continue de tourner.

    je ne sais pas si ce post va dans la categorie javascript ou php. desole par avance si j'ai faux.

    Je ne sais pas si je dois adapter mon code php ou si je dois changer mon javascript...

    Merci d'avance
    Sandrine

  2. #2
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Tu peux faire ta requete ajax depuis une popup, comme ca ils pourraient continuer à surfer sur la page principale.

    Sinon, normalement tant que ton script est lancé, même si l'utilisateur change de page, ca ne modifie en rien l'exécution du script, seul le retour de la requete te sera inaccessible.

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    Salut

    Merci du conseil mais cela ne marche toujours pas.
    J'ouvre une popup, dedans je click sur mon bouton rafraichir.
    Mon script tourne, il prend 4 minutes.

    Sur ma page principale j'essaie de continuer de surfer... mais rien, la page mets dix ans(ok 3 min) a se changer...

    Snifff
    Une autre idee?

    Sandrine

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,
    Ce que je ne comprends pas, c'est en quoi une requête Ajax asynchrone fige ton navigateur
    Que ton script PHP tourne plusieurs minutes est un fait, mais normalement l'utilisateur peut toujours naviguer à son gré

  5. #5
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Salut,
    Ce que je ne comprends pas, c'est en quoi une requête Ajax asynchrone fige ton navigateur
    Que ton script PHP tourne plusieurs minutes est un fait, mais normalement l'utilisateur peut toujours naviguer à son gré
    moi ce qui m'inquiète c'est les 4min pour rafraichir la bdd. tu traite combien d'enregistrement ? et la page en question utilise les enregistrement des tes tables pour afficher les données pendant quelle effectue son refresh?

  6. #6
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    En fait c'est une appli SERP.
    Et l'utilisateur peut rafraichir une liste de mot cle par domain en live.
    Donc il scanne les moteurs de recherches sauve le tout dans un CSV et hop load dans la base de donnees. (le load prend une seconde.)

    Mais le temps que mon script tourne bah... l'utilisateur ne peut pas se servir du site. Si je click sur une autre page... bah ca cherche le temps que le script tourne...

    J'ai aussi ouvert un post du cote du forum php afin de lancer mon script en arriere plan... a suivre

    Je ne comprends pas pourquoi je n'y arrive pas en Ajax... c'est asynchrome

    Merci pour vos reponses

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Mais concernant la remarque de Bovino ("Ce que je ne comprends pas, c'est en quoi une requête Ajax asynchrone fige ton navigateur "), ton script AJAX est bien lancé en mode asynchrone ?

    ERE

  8. #8
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    Salut,

    Je dirais que oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xhr.open("POST",'serp.php',true);
    Y a til un autre moyen?
    J'ai meme tente de retirer l'appele de la function de retour (la fonction qui va afficher le resultat) mais non pareil...

    San

  9. #9
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,
    Mais le temps que mon script tourne bah... l'utilisateur ne peut pas se servir du site. Si je click sur une autre page... bah ca cherche le temps que le script tourne...
    Mais peux tu naviguer sur un autre site que le tien (developpez.com, google...) ? Parce que dans ce cas ce n'est pas un problème Javascript mais plutôt un problème de config PHP .

    ERE

  10. #10
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    279
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 279
    Points : 164
    Points
    164
    Par défaut
    oui oui biensur je peux naviguer en dehors de mon site.

    (Au debut j'avais placer mon post dans le forum php)

    J'ai ouvert un autre post dans le forum php expres
    http://www.developpez.net/forums/d77...re-plan-popen/

    Pour lancer un script en background et continuer a me servir de mon site.

    Sand

  11. #11
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par speed034 Voir le message
    oui oui biensur je peux naviguer en dehors de mon site.

    (Au debut j'avais placer mon post dans le forum php)

    J'ai ouvert un autre post dans le forum php expres
    http://www.developpez.net/forums/d77...re-plan-popen/

    Pour lancer un script en background et continuer a me servir de mon site.

    Sand
    Ok, mais dans ce cas ton script Ajax n'y est pour rien: si c'était lui qui bloquait ton navigateur tu ne pourrais plus naviguer du tout. Là tu es certainement confronté à un problème de config de ton server PHP.

    ERE

Discussions similaires

  1. une double pagination sur la meme page PHP
    Par ichii dans le forum Langage
    Réponses: 3
    Dernier message: 18/02/2017, 19h15
  2. Récupérer valeur champs formulaire en PHP sur la meme page
    Par ingeniomatique dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/06/2011, 15h43
  3. Réponses: 1
    Dernier message: 26/01/2009, 15h01
  4. Réponses: 4
    Dernier message: 01/12/2007, 10h42
  5. [AJAX] Requete ajax sur une meme page php
    Par Bownobo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/06/2007, 11h25

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