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 :

Interrompre une requête Cross-Domain


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut Interrompre une requête Cross-Domain
    Bonjour,
    j'ai suivi l'article http://blog.pascal-martin.fr/post/Re...-balise-script
    pour faire un requête ajax cross-domain

    ça fonctionne parfaitement, maintenant je souhaite gérer le cas où la page distante met trop de temps à répondre (puisque du coup ce n'est plus asynchrone il ne s'agirait pas que le script s'exécute sans discontinuer)

    il s'agit donc d'interrompre le script en cours.... et je n'ai pas trouvé comment faire.


    mon code :
    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
    setTimeout("StatsTimeout()", 5000);
     
    function LiteStats(id, url, page, referrer, mode, path) {
    	finished = false;
    	// Affichage du calque de sortie
    	document.write('<div id="ShowStats"><img src="'+path+'images/load.min.gif"/></div>');
     
    	// Création de la nouvelle balise
    	var script = document.createElement('script');
    		script.src = path+'record.php';
    		script.src += '?Func=StatsPrintResult';
    		script.src += '&ID='+id;
    		script.src += '&URL='+url;
    		script.src += '&Page='+page;
    		script.src += '&Referrer='+referrer;
    		script.src += '&Mode='+mode;
    		script.src += '&Path='+path;
    		script.id = 'StatsResult';
    		script.type = 'text/javascript';
     
    	// Injection dans le DOM
    	document.body.appendChild(script);
    }
     
    function StatsPrintResult(responseText) {
    	document.getElementById('ShowStats').innerHTML = responseText;
    	finished = true;
    }
     
    function StatsTimeout() {
    	if(finished == false)
    		document.getElementById('ShowStats').innerHTML = '<i title="Le module ne r&eacute;pond pas">Erreur...</i>';
    }
    le setTimeout gère le cas ou la page est indisponible mais pas longue à charger

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    salut,

    si j'etais toi j'utiliserais JQuery => ce framework à une methode timeout pour gérer cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	// lancement de la requete
    	$.ajax({
    		url: "toto.php",
    		timeout: 10000, // en ms
    		success: function(){alert("requête reçue")},
    		error: function(){alert("erreur")}
    	});

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut
    je vais peut être dire une connerie mais tu me parles de le fonction ajax de jQuery, qui utilise il me semble l'objet XMLHttpRequest qui ne permet pas de faire des requêtes sur un serveur distant

    en plus je ne veux pas imposer jQuery à ceux qui utiliseront mon script (programme de statistiques, oui encore un ^^)

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    Citation Envoyé par Mistic100 Voir le message
    je vais peut être dire une connerie mais tu me parles de le fonction ajax de jQuery, qui utilise il me semble l'objet XMLHttpRequest qui ne permet pas de faire des requêtes sur un serveur distant
    oui jQuery utilise XMLHttpRequest ... désolé, je n'avais pas fait attention
    => peut etre que tu peux arrêter le chargement en supprimant/vidant la balise <script> précédemment créée


    Citation Envoyé par Mistic100 Voir le message
    en plus je ne veux pas imposer jQuery à ceux qui utiliseront mon script
    je ne pense pas que ça soit un facteur bloquant, cette lib ne fait que 23KB(en GZIP)... si tu ne veux qu'un seul fichier, tu n'as copier le contenu de jquery vers ton script (en plus JQUEry permet de faire quelques effets visuels assez sympa)

  5. #5
    Expert éminent

    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
    Par défaut
    Bonjour,
    Citation Envoyé par Mistic100 Voir le message
    il s'agit donc d'interrompre le script en cours.... et je n'ai pas trouvé comment faire.
    A+

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 855
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Bonjour,A+
    => il n'y a pas d'objet xhr me semble t-il...

  7. #7
    Expert éminent

    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
    Par défaut
    Citation Envoyé par boboss123 Voir le message
    => il n'y a pas d'objet xhr me semble t-il...
    Pas dans le code qui nous est présenté, mais pour une requête Ajax, il y en a forcément un

    A+

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Par défaut
    non il n'y en a pas,
    je parle bien ici d'AJAX CROSS-DOMAIN, qui n'est en fait pas de l'AJAX, tout est expliqué dans le lien que j'ai donné

    boboss123 : j'ai déjà essayé avec un removeChild, mais ça n'as aucun effet car le script est déjà lancé et chargé dans la mémoire

  9. #9
    Expert éminent

    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
    Par défaut
    Citation Envoyé par Mistic100 Voir le message
    non il n'y en a pas,
    je parle bien ici d'AJAX CROSS-DOMAIN, qui n'est en fait pas de l'AJAX,
    Alors il ne faut pas parler d'Ajax ...

    A+

Discussions similaires

  1. [XL-2002] Interrompre une requête
    Par Maze0 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/05/2012, 20h22
  2. Requête vers WebService asp: cross domain exception
    Par Strange-Days dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/01/2012, 10h41
  3. [MySQL] Interrompre une requête sql trop longue
    Par kayoum dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/05/2011, 14h00
  4. Interrompre une requête avec Trigger
    Par soufian1364 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/06/2009, 17h34
  5. Interrompre une requête PL/SQL demandée par le Web
    Par PierreV01 dans le forum PL/SQL
    Réponses: 1
    Dernier message: 12/12/2005, 10h52

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