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] Stopper un Set Interval


Sujet :

AJAX

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut [AJAX] Stopper un Set Interval
    Bonjour,

    j'essaye depuis quelques temps a stopper un setinterval avec un clear interval, j'ai mit un controle pour le stopper au bout d'un temps définie mais cela ne marche pas le setinterval ne se stoppe pas

    voila 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
    <script type="text/javascript">
    function chargeconnect() {
        var XHR = new XHRConnection();        
        XHR.setRefreshArea('login-on');
        XHR.sendAndLoad("session.php", "POST");
        return true;
     
    }
    setInterval("chargeconnect()", 50);
     
    var count = 0;
     var count2 = count++;
    var interval = setInterval("chargeconnect()", 50);
     
     
        if(count2 > 50)
        {
            clearInterval(interval);
        }
     
    </script>
    celui la ne marche pas et j'ai aussi essayer

    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
    <script type="text/javascript">
    function chargeconnect() {
        var XHR = new XHRConnection();        
        XHR.setRefreshArea('login-on');
        XHR.sendAndLoad("session.php", "POST");
        return true;
     
    }
     
    var count = 0;
     var count2 = count++;
    var interval = setInterval("chargeconnect()", 50);
     
     
        if(count2 > 10)
        {
            clearInterval(interval);
        } else {
    setInterval("chargeconnect()", 50);
    }
    </script>
    qui ne marche pas non pus, comment puis je faire stopper le setinterval ?

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Bonjour,
    Citation Envoyé par toulousain3117 Voir le message
    mais cela ne marche pas le setinterval ne se stoppe pas
    ... tout est dans ma signature

    voila 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
    <script type="text/javascript">
     
    setInterval("chargeconnect()", 50);
     
    var interval = setInterval("chargeconnect()", 50);
     
     
        if(count2 > 50)
        {
            clearInterval(interval);
        }
     
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var interval = setInterval("chargeconnect()", 50);
     
     
        if(count2 > 10)
        {
            clearInterval(interval);
        } else {
    setInterval("chargeconnect()", 50);
    }
    </script>
    Dans tes 2 tentatives, tu fais 2 setInterval, et dans chacun de tes exemples, à un moment le setInterval n'est pas variabiliser... tu ne peux donc pas le stopper. Il faut absolument récupérer le retour de setInterval pour pouvoir par la suite le stopper....

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    et donc comment je peux faire?

  4. #4
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Comme je l'ai dit plus haut, il faut systématiquement variabiliser le setInterval :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var interval = setInterval("chargeconnect()", 50);

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    voila mon nouveau test que j'ai respecter a la lettre sur tout es forum qui parle de ce 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
    <script type="text/javascript">
    function chargeconnect() {
        var XHR = new XHRConnection();        
        XHR.setRefreshArea('login-on');
        XHR.sendAndLoad("session.php", "POST");
        return true;
     
    }
    var interval = setInterval("chargeconnect()", 1000);
     
     
        if(interval > 10000)
        {
            clearInterval(interval);
        }
     
     
    </script>

    et il ne marche pas

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je ne comprends pas, rien ne fais bouger ton compteur

    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
     
    <script type="text/javascript">
    function chargeconnect(interval) {
        var XHR = new XHRConnection();        
        XHR.setRefreshArea('login-on');
        XHR.sendAndLoad("session.php", "POST");
        interval++; 
        return interval;
     
    }
    var interval =1; 
    interval= setInterval("chargeconnect(interval)", 200);
    if(interval > 1000)
        {
            clearInterval(interval);
        }
     
     
    </script>

  7. #7
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Citation Envoyé par toulousain3117 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
    var interval = setInterval("chargeconnect()", 1000);
     
     
        if(interval > 10000)
        {
            clearInterval(interval);
        }
     
    </script>
    Interval n'est pas un nombre, donc ca ne risque pas de fonctionner

  8. #8
    Invité
    Invité(e)
    Par défaut
    tu n'avais pas testé ma solution

  9. #9
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par gwyohm Voir le message
    Interval n'est pas un nombre, donc ca ne risque pas de fonctionner
    Si techniquement, c'est un nombre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(setTimeout('',1000));
    mais comme tu le fais remarquer, c'est surtout l'identifiant interne du timer, donc rien à voir avec l'utilisation qu'en fait toulousain3117 car il n'est lié ni au temps passé à exécuter le timer ni au nombre de répétitions.

    @mauriser : dans ton code, tu utilises la même variable comme compteur et comme timer, ce n'est pas bon.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    si j'ai tester toute les solutions aucune de marche, meme celui la :

    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
     
    <script type="text/javascript">
    function chargeconnect(interval) {
        var XHR = new XHRConnection();        
        XHR.setRefreshArea('login-on');
        XHR.sendAndLoad("session.php", "POST");
        interval++; 
        return interval;
     
    }
    var interval =1; 
    interval= setInterval("chargeconnect(interval)", 1000);
    if(interval > 10000)
        {
            clearInterval(interval);
        }
     
     
    </script>

    j'ai edité car j'ai mit un button

    <input type="button" value="arrêter" onClick="clearInterval(interval);">
    et avec le bouton le compteur sarrete, j'ai mit un time() pour verifier et sa marche niquel apparement c'est une erreur au niveau du compteur

  11. #11
    Invité
    Invité(e)
    Par défaut
    Que je suis bête bien sur il ne relis pas le if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type="text/javascript">
    function chargeconnect() {
        var XHR = new XHRConnection();        
        XHR.setRefreshArea('login-on');
        XHR.sendAndLoad("session.php", "POST");
        flag++; 
        if(flag> 10000)    {  clearInterval(x);    }
        return;
    }
    var flag=1; 
    x=setInterval("chargeconnect()", 1000);

  12. #12
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    j'ai juste fait un copier/coller de ton code, mais il ne marche pas c'est ça que je comprends pas

  13. #13
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par toulousain3117
    j'ai juste fait un copier/coller de ton code, mais il ne marche pas c'est ça que je comprends pas
    Dans le code proposé par mauriser, le compteur s'incrémente de 1 à chaque appel de la fonction, (qui est appelée toutes les secondes) et attend d'atteindre 10000 avant de stopper le timer.
    Tu es donc certain d'avoir attendu pas loin de 3 heures avant de dire que ça ne marche pas ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  14. #14
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    lol je n'avais pas compris le code dans ce sens là , je tiens a vous remercier a tous pour votre aide le script marche niquel merci beaucoup

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

Discussions similaires

  1. [AJAX] Stopper une requête AJAX
    Par Riri80 dans le forum jQuery
    Réponses: 1
    Dernier message: 24/05/2013, 18h03
  2. Stopper le submit au retour d'un appel ajax
    Par nawbacan dans le forum jQuery
    Réponses: 7
    Dernier message: 15/03/2011, 09h43
  3. [AJAX] Stopper l'éxécution d'une fonction AJAX
    Par crazymonkey dans le forum AJAX
    Réponses: 2
    Dernier message: 13/08/2009, 14h16
  4. [AJAX] Rafraîchir deux div à des intervals différents
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/11/2007, 13h58
  5. Pb avec SET INTERVAL
    Par jenny50 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 10h06

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