1. #1
    Membre habitué Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 264
    Points : 198
    Points
    198

    Par défaut Impossibilité de stopper un setInterval

    Bonjour à tous,

    Je cherche à déclencher une fonction qui fait changer le titre de ma page grâce à setInterval et au bout d'un temps donné à l'arrêter. Pour que vous ayez toutes les infos, je précise que la page n'est chargée qu'une fois et que le reste de son contenu est rechargé via ajax et d'autres setInterval.
    Voici les portions de code impliquées :
    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
    40
    41
    42
    43
     
    var edition = setInterval(false, 0);
     
    function reloadComment()
                {
                    $.ajax({
                        type: "POST",
                        url: 'ajax/outilTp.ajax.php',
                        dataType: 'json',
                        data: {
                            action: 'rafraichir_commentaire'
                        },
                        success: function (response) {
                            if(response.MOD == '1' && response.BL_EN_EDITION == '2'){
                                startClignote();
                            }
                            if(response.MOD == '3'){
                                stopClignote();// histoire d'être sûr!  
                            }
                            if($('div#commentaire_sup').html()!=response.TEXTE_COMMENTAIRE) {
                                $('div#commentaire_sup').html(response.TEXTE_COMMENTAIRE);
                            }
                        },
                        error: function (xml, err) {
                        }
                    });
                }
    function titreClignote(){
                    if(document.title == "Changement - EVENEMENTS"){
                        document.title = "nouveau commentaire";
                    }
                    else {
                        document.title = "Changement - EVENEMENTS";
                    } 
                }
                function startClignote(){
                    edition = setInterval(titreClignote, 2000);
                    setTimeout(stopClignote, 900000);
                }
                function stopClignote(){
                    clearInterval(edition);
                    document.title = "Changement - EVENEMENTS";
                }
    Par ailleurs, je précise que je n'ai pas de problème de réception des informations JSON en ajax, celles-ci sont bien envoyées. (MOD=1 ou MOD=3 et BL_EN_EDITION=2...)
    Je pense qu'il s'agit d'un problème de scope, mais je ne trouve pas comment.
    Pouvez-vous m'éclairer ?
    Merci
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 142
    Points : 99
    Points
    99

    Par défaut

    Je n'ai pas testé, mais le principe suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function startClignote(){
        var edition = setInterval(titreClignote, 2000);
        setTimeout(function(interval){
            clearInterval(interval);
        }, 900000, edition);
    }
    Tu n'as plus besoin de ta fonction stopClignote

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    février 2009
    Messages
    5 508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2009
    Messages : 5 508
    Points : 20 024
    Points
    20 024
    Billets dans le blog
    33

    Par défaut

    Pas : var edition = setInterval(false, 0); !

    Mais : var edition = null;

    Blog

    FAQ JS Tutoriels JS

    Si un message vous a aidé ou vous semble pertinent, votez pour lui !

  4. #4
    Membre habitué Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    octobre 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : octobre 2006
    Messages : 264
    Points : 198
    Points
    198

    Par défaut merci

    Merci pour ces réponses,

    C'était tout bête... (comme souvent)
    Effectivement passer en global et en valeur null ma varaiable edition.
    Par ailleurs, je fais un contrôle sur la valeur d'edition et tout marche nickel.
    "n'imprimez ces messages que si nécessaire... Préservez notre planète"

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

Discussions similaires

  1. Comment deux setInterval peuvent se stopper alternativement ?
    Par progdebutant dans le forum JavaScript
    Réponses: 3
    Dernier message: 28/01/2016, 15h54
  2. Comment stopper un setInterval() ?
    Par lerieure dans le forum jQuery
    Réponses: 2
    Dernier message: 27/10/2012, 18h52
  3. [NVidia] Démarrer ou stopper sortie Tv
    Par nico-21 dans le forum DirectX
    Réponses: 2
    Dernier message: 31/05/2004, 12h59
  4. [flash MX] probleme avec setinterval et clearinterval
    Par yacinechaouche dans le forum Flash
    Réponses: 3
    Dernier message: 15/04/2004, 13h07
  5. Stopper la répétition du clavier
    Par Chris89 dans le forum Assembleur
    Réponses: 6
    Dernier message: 17/10/2003, 21h53

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