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 :

Répéter à l'infini un bout de code javascipt


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut Répéter à l'infini un bout de code javascipt
    bonjour, le code ci-dessous fonctione, il attend 5 secondes et ouvre une page Web (www.google.fr)

    j'aimerai cependant qu'il fasse cela à l'infini .... 5 secondes, ouverture page web, 5 secondes , ouverture page web .....

    pouvez vous m'aider ?

    merci


    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
    <html>
    <head>
    </head>
     
    <script type="text/javascript">
    var delay = 5; // 5 second delay
    var now = new Date();
    var desiredTime = new Date().setSeconds(now.getSeconds() + delay);
     
    while (now < desiredTime) {
        now = new Date(); // update the current time
    }
     
    self.location.href="http://www.google.fr"
     
    </script>
    </body>
    </html>

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    heu c'est quoi le besoin

    A quoi faire chauffer un proc pendent des jours sans rien pouvoir faire peut-il servir ?

    A+JYT

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Je ne sais pas si le Javascript fonctionne exactement de la même façon que Java mais tu peux essayer ça:

    A lieu de t'embêter avec delay, now, etc... tu devrais juste créer une variable numérique de valeur 1 par exemple.
    Tu met ça comme argument de ta boucle et dans celle-ci, tu ajoutes un Thread.sleep(5000)Ainsi, ton programme attendra 5s avant que ta boucle se relance et ta boucle sera infinie vu que la valeur de ta variable numérique ne changera pas.
    Ensuite, il faut que tu mette l'instruction pour ouvrir ta page dan

    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
    <html>
    <head>
    </head>
     
    <script type="text/javascript">
    var boucle = 1;
     
    while (boucle == 1) {
     
        self.location.href="http://www.google.fr"
        Thread.sleep(5000);
     
    }
     
     
    </script>
    </body>
    </html>

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    le besoin est le suivant :

    visualiser une webcam qui a une durée limite de 5 minutes en visualisation (compte à rebours)

    obliger de relancer la page pour remettre le timer à 5 minutes

    merci

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Dans ce cas là tu créé un objet timer et tu le rappelle à la fin de ta boucle (après le Thread.sleep()) avec new timer();Et tu met 30000ms de sleep à ton thread (5min).
    edit: Bien-sûr il faudra le lancer une première fois avant ta boucle sinon ton programme attendra 5min avant de lancer le premier timer.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut merci mais ne relance pas la page
    merci beaucoup JeremGamer, mais le script que tu me propose ne relance pas au bout de 5 secondes le site

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Tente alors de créer une méthode pour ouvrir le site et appelle-là dans ta boucle à la place de self.location.href="http://www.google.fr"

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut merci à tous mais suis vraiment noobies
    merci à tous de m'aider, je suis vraiment noobies en la matière.

    je ne peux faire autrement que vous demander le bout de code

    vos idées m’intéressent mais je ne sais pas les mettre en application

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Encore une fois je ne sais pas si en javascript les méthodes sont syntaxées de la même manière. Il faudrait que tu vérifie dans la doc si le thread.sleep() est bien en millisecondes et pas en secondes (sinon ça fait un peu long 5000s )

    Je pense que créer une méthode n'est pas très propre vu qu'il n'y a qu'une seule ligne de code à y mettre. Cherche dans la doc s'il est possible de rafraichir une page web déjà ouverte au lieu de la rouvrir. Le problème vient peut-être du fait que ton code voit que la page est déjà ouverte et donc il ne la rouvre pas!

    Dernière chose, imprime dans la console un message afin de voir si c'est ta commande d'ouverture de page web qui ne fonctionne pas ou alors si c'est la boucle. Tu mettra donc cette ligne de code à la fin de ta boucle: alert("test");

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 149
    Points : 126
    Points
    126
    Par défaut
    Après une petite recherche:

    Thread.sleep() n'éxiste pas en Javascript ce que explique l'arrêt de la boucle.
    Essaie avec ça :
    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
    <html>
    <head>
    </head>
     
    <script type="text/javascript">
    var boucle = 1;
    var millisecondsToWait = 5000; 
     
    while (boucle == 1) {
     
     setTimeout(function() {
     
            self.location.href="http://www.google.fr"
     
    }, millisecondsToWait);
     
    }
     
     
    </script>
    </body>
    </html>

  11. #11
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    La boucle est inutile puisque setTimeout est là pour différer l'éxecution de la fonction, et ceci, tout en laissant le système "à l'écoute" du moindre évenement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    	// Differer l'éxecution d'une fonction
    	setTimeout(
    		function(){self.location.href="http://www.google.fr";},
    		300000 // 5 x 60 sec. * 1000
    	);
    </script>

  12. #12
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut ne fonctionne pas
    désolé, ne fonctionne pas, dpassement mémoire .....


    Citation Envoyé par JeremGamer Voir le message
    Après une petite recherche:

    Thread.sleep() n'éxiste pas en Javascript ce que explique l'arrêt de la boucle.
    Essaie avec ça :
    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
    <html>
    <head>
    </head>
     
    <script type="text/javascript">
    var boucle = 1;
    var millisecondsToWait = 5000; 
     
    while (boucle == 1) {
     
     setTimeout(function() {
     
            self.location.href="http://www.google.fr"
     
    }, millisecondsToWait);
     
    }
     
     
    </script>
    </body>
    </html>

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut répéter indifiniment : lancement google.fr et attendre 10 secondes puis relancer google.fr .............
    bonjour, merci pour ton aide :

    je désire dans une boucle infinie, lancer www.goole.fr, attendre X secondes puis relancer www.google.fr dans la meme fenetre, attendre X secondes .............................

    merci encore




    Citation Envoyé par Eric2a Voir le message
    Salut,

    La boucle est inutile puisque setTimeout est là pour différer l'éxecution de la fonction, et ceci, tout en laissant le système "à l'écoute" du moindre évenement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    	// Differer l'éxecution d'une fonction
    	setTimeout(
    		function(){self.location.href="http://www.google.fr";},
    		300000 // 5 x 60 sec. * 1000
    	);
    </script>

  14. #14
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    Citation Envoyé par JeremGamer Voir le message
    Je ne sais pas si le Javascript fonctionne exactement de la même façon que Java mais tu peux essayer ça:
    A lieu de t'embêter avec delay, now, etc... tu devrais juste créer une variable numérique de valeur 1 par exemple.
    Tu met ça comme argument de ta boucle et dans celle-ci, tu ajoutes un Thread.sleep(5000)
    Citation Envoyé par JeremGamer Voir le message
    Encore une fois je ne sais pas si en javascript les méthodes sont syntaxées de la même manière. Il faudrait que tu vérifie dans la doc si le thread.sleep() est bien en millisecondes et pas en secondes (sinon ça fait un peu long 5000s )
    @JeremGamer : visiblement tu confonds Java et Javascript. Malgré des noms similaires ce sont des langages totalement différents. En javascript, les threds n'existent pas


    Citation Envoyé par sebastien2975000
    je désire dans une boucle infinie, lancer www.goole.fr, attendre X secondes puis relancer www.google.fr dans la meme fenetre, attendre X secondes
    tu ne peux pas le faire pour une raison toute simple : avec ce code self.location.href="http://www.google.fr";tu modifies l'url de la fenêtre courante, tu perds donc forcément le script qui contient le timer.

    Mais visiblement, ton besoin n'est pas celui que tu as décrit dans ton dernier message, mais celui-là :
    Citation Envoyé par sebastien2975000
    le besoin est le suivant : visualiser une webcam qui a une durée limite de 5 minutes en visualisation (compte à rebours)
    Dans ce cas l'astuce serait plutôt d'utiliser une balise meta dans l'entête de ta page :
    http://cyberzoide.developpez.com/html/meta.php3#refresh

  15. #15
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    j'avoue ne toujours pas comprendre ce que tu veux faire

    ce code il est mis dans quelle page
    l'url de la web cam est utilisé comment


    on ne sais absolument rien de la situation et on épilogue sur du code absurde.

    la première chose à faire c'est de donner une explication claire de la situation.

    l'url de la web cam et de la page sont où ?
    comment la page référence la webcam ?
    etc...


    la syntaxe pour répéter une fonction à intervalle régulier est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var myRunner = window.setInterval(
      function(){
        console.log('test');
      },
      2000 //2 secondes
    );
    et pour l'arrêter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.clearInterval(myRunner)
    mais tous cela est complètement débile si tu met un self.location.href="http://some.domain/" dans la fonction à exécuter.
    en effet cela reviens à quitter l'application. self c'est la fenêtre c'est comme si tu fermait ta fenêtre pour en ouvrir une autre.

    je suppose que ce n'est pas la page qui contient ce code que tu veux recharger mais celle de la webcam
    donc tant que tu nous explique pas ce que tu fais il est impossible de t'aider.

    A+JYT

  16. #16
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut merci pour ton aide
    merci sekajin,

    en effet, étant débutant, je dois mal expliqué ma demande :

    j'aimerai que le site http://tks.ibb.gov.tr/noc-player.php?id=11 s'ouvre dans une fenêtre et qu'il soit raffraichit (un F5 automatique) avant que le compte à rebours arrive à 0

    ça me permettrait de visualiser la webcam en permanence sans avoir à la recharger en permanence.

    je pensais donc qu'on pouvait à l'aide d'une page html, lancer le site ci-dessus et qu'il soit relancer dans la même fenêtre toutes les 4 minutes de façon indéfinie

    peut etre cela n'est pas possible

    (le site de la webcam ne m'appartient pas, je veux juste la visualiser en permanence)

    merci

  17. #17
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Ok je vois

    dans ton site
    tu ouvre une nouvelle fenêtre
    puis tu installe un setInterval
    à chaque intervalle si la fenêtre existe encore (l'utilisateur ne l'a pas fermée) tu recharge son url
    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
    maWebCam = window.open('http://google.fr', 'maWebCam');
    var myRunner = window.setInterval(
      function(){
        if (null != maWebCam) {
          // la fenêtre existe toujours on reouvvre car on n'est pas sur 
          //le même domaine on ne peux pas intervenir dans la fenêtre
          window.open('http://google.fr', 'maWebCam'); 
          //c'est le 2e param qui garanti qu'un recharge l'url dans la bonne fenêtre
        } else {
          // l'utilisateur a décidé de fermer la fenêtre. il n'est plus nécessaire de la mettre à jour.
          window.clearInterval(myRunner);
        }
      },
      5 * 60 * 1000 //5 x 60 x 1000 milisecondes
    );

  18. #18
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    merci,

    la fenetre ne se relance pas et il aurait fallut que ça n'ouvre pas un popup mais que la webcam s'ouvre dans la meme fenetre

    merci encore

  19. #19
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 647
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 647
    Points : 11 136
    Points
    11 136
    Par défaut
    voilà une solution :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!doctype html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
     
    <title></title>
    <meta http-equiv="Refresh" content="300; url=taPage.htm">  <!-- 5 x 60 sec. -->
    </head>
     
    <body>
     
    <iframe src="http://tks.ibb.gov.tr/noc-player.php?id=11">
    </iframe>	
     
    </body>
    </html>

    Tu crées une page (que j'ai nommée ici taPage.htm) qui contient une iframe qui pointe vers le site en question.
    Ta page contient la balise META "refresh" qui recharge la page toutes les 300 secondes (5 minutes).
    Attention !! le nom de ton fichier HTML doit être identique à l'url indiquée dans la balise META.

    Il faudra sans doute préciser la largeur et la hauteur de l'iframe :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <iframe src="http://tks.ibb.gov.tr/noc-player.php?id=11" style="width: 500px; height: 500px">
    ici pour une iframe de 500x500px

  20. #20
    Futur Membre du Club
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Points : 7
    Points
    7
    Par défaut
    merci beaucoup

    désolé, la webcam n’apparaît pas dans l'iframe !! je n'ai qu'un cadre blanc !

Discussions similaires

  1. répéter à l'infini un bout de code javascipt
    Par sebastien2975000 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 11/04/2014, 20h40
  2. [XML][XSL] déplacer bout de code XML
    Par majanissa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 14/09/2005, 17h17
  3. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  4. bout de code à dechifrer svp
    Par bball dans le forum C
    Réponses: 32
    Dernier message: 20/01/2005, 23h23

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