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 :

Activer et desactiver le refresh automatique


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Activer et desactiver le refresh automatique
    Bonjour à tous,

    Ceci est mon premier post sur le forum alors soyez indulgent avec moi svp :D

    J'essaie de faire une fonction JS dans lequel je rafraichi automatiquement (toutes les 10 secondes) ma page JSP (oui je suis dans un projet JAVA JEE).
    Cependant je souhaite que le rafraichissement s’arrête lorsque j'ouvre mon modal popup. Le rafraichissement doit par contre se relancer des que je quitte mon popup

    J'ai réussi à avoir les évènements JS pour savoir si le modal est ouvert ou non mais à partir de la je suis totalement perdu ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $(window).on('shown.bs.modal', function() { 
       $('#myModal').modal('show');
       });
     
       $(window).on('hidden.bs.modal', function() { 
       $('#myModal').modal('hide');
       });

    J'ai créé une fonction de rafraichissement dans lequel je met en paramètre une valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function AutoRefresh(t) {
    setTimeout("location.reload(true);", t);
    }
    Mais je ne vois absolument pas comment liés mes fonctions...

    Merci d'avance pour l'aide apportée,

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    Bonjour,
    pour commencer, on va remplacer la chaîne que tu passes à setTimeout en fonction, car la chaîne ne peut pas être optimisée par les moteurs JS et ça impacte la performance du script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function AutoRefresh(t) {
      setTimeout(function () {
        location.reload(true);
      }), t);
    }
    Pour résoudre ton problème, il y a plusieurs solutions. Je te propose d’utiliser clearTimeout. Pour ça il faut conserver dans une variable l’identifiant du timeout.

    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
    "use strict";
     
    let timeoutId;
     
    $(window).on('shown.bs.modal', function() {
      // annule le timeout, s’il existe
      if (timeoutId) {
        clearTimeout(timeoutId);
      }
      $('#myModal').modal('show');
    });
     
    $(window).on('hidden.bs.modal', function() {
      $('#myModal').modal('hide');
      // relance le timeout
      AutoRefresh(10000);
    });
     
    function AutoRefresh(t) {
      timeoutId = setTimeout(function () {
        location.reload(true);
      }), t);
    }
    Note : c’est une mauvaise idée de recharger la page à intervalle régulier, pour plusieurs raisons.
    c’est dérangeant. Personnellement, quand je vois une page qui se rafraîchit toute seule, même (surtout) quand c’est dans un autre onglet, ça me donne juste envie de fermer l’onglet. Lemonde.fr faisait ça à une époque, en plus c’était mal foutu et ça faisait remonter le scrolling tout en haut alors qu’on était en train de lire, l’enfer. Résultat je n’y vais plus du tout.
    ce n’est pas efficace. Tu n’as probablement besoin que de rafraîchir une partie de la page, et pour ça il y a ajax. En réduisant le volume des données échangées, tu fais gagner du temps et de la bande passante à tout le monde : ton serveur, le client, les nœuds du réseau entre les deux.

Discussions similaires

  1. [debutant][CEdit] activer et desactiver
    Par mzt.insat dans le forum MFC
    Réponses: 3
    Dernier message: 31/10/2005, 08h39
  2. [MySQL] Refresh automatique d'une date
    Par glloq8 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 10h16
  3. champ activé ou desactivé
    Par dark2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/03/2005, 13h15
  4. champ activé ou desactivé
    Par dark2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/03/2005, 17h09
  5. Melange de formulaire, popup, refresh automatique
    Par reseau-emploi dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/02/2005, 11h12

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