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

Langage PHP Discussion :

Script long qui bloque le navigateur


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut Script long qui bloque le navigateur
    Bonjour a tous,
    Voila j'ai un petit souci avec un script php lancé par AJAX qui s'exécute mais qui est vraiment long ce qui est normal je fait beaucoup de requéte a un service web .
    Le souci c'est que j'aimerai que l'utilisateur puissent changé de page sans que le script ne soit fini et qu'il soit du coup arrété.
    car pour le moment on est obligé d'attendre que le script soit fini pour faire autre chose.
    j'espére que j'ai été assez clair.
    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    JE comprends pas trop ce que tu veux faire mais de 2 choses l'une :

    - Soit tu utilise mal AJAX
    - Soit ce n'est pas AJAX que tu dois utiliser

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Voila ce que je fait:
    l'utilisateur accéde a une page ou il y a le detail d'un produit et pendant ce temp je lance avec ajax une script php qui fait beaucoup de requéte a un web service qui récupére encore plus de detail sur ce produit et qui quand il a tout récupéré l'affiche en bas de la page.
    mais le souci c'est que je voudrai que si l'utilisateur a vu ce qu'il voulai voir sur le petit descriptif et que le reste n'est pas chargé qu'il puissent partir ailleur sans attendre le chargement complet .

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    je me suis apérçu que a chaque fois que j'utilise un appel plutot long a un webservice sa me bloque le navigateur jusqu'a ce que ce soit fini.
    donc je ne peu plus rien faire tant que sa n'a pas été chargé

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    ?
    on peut voir un peu de code stp ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    tu veux quoi comme code ? mon accés au webservice ? mon affichage ? ou autre chose ?

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    le truc c'est que j'aimerai que le script php s'éxécute en paralléle sans que sa bloque la navigation .

  8. #8
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Le code de la page d'accuil qui appel le script en ajax, normalement si tu es en asynchrone tu ne devrais pas avoir de problème de blocage du navigateur.
    Maintenant il se peut que tu fasse autre chose comme renvoyer en permanence du contenu vers la sortie ecran et que le navigateur ne suive pas.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    voici le code javascript pour AJAX et il est appelé au chargement de la page avec un onload()
    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
    function getXhr(){
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    		xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject){ // Internet Explorer 
    		try {
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else { // XMLHttpRequest non supporté par le navigateur 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	xhr = false; 
    	} 
    	return xhr;
    }
    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
     
    function recup_vehicules(numero){
     
     
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			leselect = xhr.responseText;
    			// On se sert de innerHTML pour rajouter les options a la liste
     
    			document.getElementById('vehi_TD').innerHTML = numero+leselect;
    		}
    	}
     
    	// Ici on va voir comment faire du post
    	xhr.open("POST","/AJAX_TD.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, l'id de l'auteur
     
    	xhr.send("action=vehicules&numero="+numero);
    }

  10. #10
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Rien a déclarer de ce cote la
    La requête est bien asynchrone, ton navigateur se bloque pendant l'appel ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    le truc c'est qu'il ne veux rien faire d'autre tant que le script php n'est pas fini. méme si je clique sur un autre lien sa attend que le script soit chargé pour me redirigé sur le lien cliqué

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    je croi que sa doit venir aussi au nombre de requéte au service web
    car je fait dabord une premiére requéte qui récupére un liste et pour chaque ligne de cette liste je fait une requéte qui me donne les detail sur cette liste.
    si la liste a 8ligne sa va mais dés que sa commence a monté sa met un temp astronomique

  13. #13
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Citation Envoyé par ifrit 23 Voir le message
    je croi que sa doit venir aussi au nombre de requéte au service web
    car je fait dabord une premiére requéte qui récupére un liste et pour chaque ligne de cette liste je fait une requéte qui me donne les detail sur cette liste.
    si la liste a 8ligne sa va mais dés que sa commence a monté sa met un temp astronomique
    tu n'as pas moyen de récupérer les données en une seule requête grâce a une jointure ?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    des jointures en SOAP ???
    pour le moment j'appelle un fonction qui me retourne une liste d'id et puis pour chaque id j'appelle une fonction qui me retourne toutes les infos

  15. #15
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    urf j'avais oublié que c'était en SOAP
    Et tu ne peux pas demander les id ET les infos associées en même temps ?
    Il est de toi le webservice ou c'est un webservice tier ?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    service web tier c'est pour sa que je peu rien faire il me fournisse des fonction et je me débrouille avec
    ce qui me géne vraiment c'est que tant qu'il est a la recherche des informations bin ma page je suis obligé d'attendre je peu pas faire de retour ou partir sur une autre page
    moi je pensé que en asynchrone j'aurai pu navigué sans attendre toutes les infos

Discussions similaires

  1. script long qui bloque firefox
    Par Invité dans le forum Firefox
    Réponses: 1
    Dernier message: 20/06/2013, 12h59
  2. transparence qui bloque mes scripts jquery
    Par kate59 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/01/2010, 15h24
  3. Un petit script facile mais qui bloque
    Par Whombat dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2007, 20h15
  4. script trop long message afficher par navigateur
    Par nocoment dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/05/2007, 18h40
  5. Script qui bloque IE
    Par sondo dans le forum IE
    Réponses: 1
    Dernier message: 15/05/2007, 10h01

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