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 :

Timers et changement d'heure


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 41
    Points : 28
    Points
    28
    Par défaut Timers et changement d'heure
    Bonjour,

    J'ai un petit soucis:
    J'utilise un timer pour exécuter périodiquement une fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IdTimer = setInterval('snddata()',1000);
    Tout cela marche très bien, sauf qu'il est possible qu'une autre application vienne changer l'heure de la machine.
    Lorsque l'heure est avancée, ce n'est pas très grave, le timer s'exécute instantanément, mais lorsque l'heure recule, le timer ne s'exécutera pas avant que l'heure ait rattrapé l'heure initiale.

    Est-il possible de contourner ce problème?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Points : 102
    Points
    102
    Par défaut
    Bonjour,

    Tu ne vas pas trop avoir le choix, puisque le problème vient d'un évènement extérieur.

    As-tu essayé setTimeout() pour savoir si cette fonction a le même problème ?

  3. #3
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    ^^ Une bidouille éventuelle :

    >>> Une fonction exécutée à intervalles réguliers (par ex. toutes les minutes, mais à adapter en fonction de l'importance dans le contexte), qui va venir surveiller la valeur du timer, et la réduit à 1000 si elle est supérieure.

    C'est pas beau et si quelqu'un a une idée plus élégante, ça ne sera pas du luxe ^^

    edit : heu... J'ai soudain l'impression de creuser un deuxième trou pour stocker la terre du premier... non ça ne va pas. Quand l'heure de la machine va changer, le timer de surveillance va être autant dans les choux que le premier Oublie cette idée

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    salut,

    tu lances l'action tous les combien en vrai? tu peux donner un ptit poil plus de précisions sur ton script?

    tu ne peux pas tester l'heure régulièrement, histoire de repartir du bon pied en cas de mise à jour extérieure?

  5. #5
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Citation Envoyé par javatwister Voir le message
    tu ne peux pas tester l'heure régulièrement, histoire de repartir du bon pied en cas de mise à jour extérieure?
    Ben c'est justement le souci...
    Quand tu dis "régulièrement" tu penses à quoi concrètement si ce n'est ni setTimeout ni setInterval ?

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    oui forcément c'est l'un ou l'autre!
    mais quand même, on verrait plus clair avec des infos euh... plus claires;

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 41
    Points : 28
    Points
    28
    Par défaut
    En l'occurrence, toutes les secondes.
    Je peux essayer avec setTimeout, mais je pense que la gestion en interne est la même et de toutes façons quand l'heure va reculer, le timeout ne s'écoulera pas non plus.

Discussions similaires

  1. Changement d'heure et la base Oracle
    Par big1 dans le forum Administration
    Réponses: 2
    Dernier message: 28/03/2008, 13h02
  2. impacts programmes crontab et changement d'heure
    Par petburn dans le forum Unix
    Réponses: 13
    Dernier message: 13/03/2008, 09h17
  3. boost::thread, sleep et changement d'heure
    Par lebaste77 dans le forum Boost
    Réponses: 8
    Dernier message: 11/02/2008, 16h59
  4. détecter le changement d'heure systeme
    Par firejocker dans le forum Visual C++
    Réponses: 7
    Dernier message: 15/05/2007, 17h01

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