Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/04/2011, 12h32   #1
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Par défaut Une boucle infinie qui ne freeze pas ?

Bonjour,

Je souhaiterais savoir si il était possible de faire une boucle infinie qui ne freeze pas le navigateur ?
J'ai essayer avec un setTimeout() mais vu qu'il continue d’exécuter le code sa fait freeze le navigateur...
J'ai également essayer d'appeler un setTimeout() de ma fonction à la fin de cette même fonction mais il ne se ré exécute pas non plus

Sinon est-il possible de lancer une instruction depuis mon programme c++ pour lancer une fonction javascript ?
Sans rouvrir une fenêtre bien sûr

Je vous remercie d'avance.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 12h37   #2
Candidat au titre de Membre du Club
 
Inscription : avril 2010
Messages : 26
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 26
Points : 10
Points : 10
setInterval(), qui appelle ta fonction tous les x millisecondes ?
scfi1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h04   #3
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Bonjour,

Citation:
J'ai essayer avec un setTimeout() mais vu qu'il continue d’exécuter le code
C'est le but d'un boucle infinie non .

Citation:
J'ai également essayer d'appeler un setTimeout() de ma fonction à la fin de cette même fonction mais il ne se ré exécute pas non plus
Peut-on voir ton code pour que l'on puisse t'aider?

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h20   #4
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Bonjour et merci de vous réponse.

Citation:
Envoyé par scfi1
setInterval(), qui appelle ta fonction tous les x millisecondes ?
C'est la même chose que setTimeout non ?

Citation:
Envoyé par andry.aime
C'est le but d'un boucle infinie non .
Oui mais moi je voudrais une tempo entre deux exécution


Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" language="JavaScript">
       function maFonction() {
	var etat = docXml.getElementsByTagName('general');
        window.alert(etat.length);
        document.writeln(etat[0].firstChild.nodeValue);
        setInterval("maFonction()", 10000);
}
 
        window.onload = function() {
            docXml = document.implementation.createDocument('', '', null);
            docXml.load("fichierXML.xml");
            maFonction();
        };
    </script>
  </head>
  <body>
  </body>
</html>
Le but étant en fait de récupérer les infos du fichier XML qui sont mis à jour et de les traiter en javascript pour en faire un affichage.
Pour cela il faut donc évidemment que le script retourne chercher les valeurs dans le fichier jusqu’à ce que l'on lui dise d’arrêter.
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h33   #5
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Re,

Code :
1
2
3
4
5
6
7
8
9
10
function maFonction() {
	var etat = docXml.getElementsByTagName('general');
        window.alert(etat.length);
        document.writeln(etat[0].firstChild.nodeValue);
}
         window.onload = function() {
            docXml = document.implementation.createDocument('', '', null);
            docXml.load("fichierXML.xml");
            setInterval( function(){maFonction()}, 10000);
        };
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h43   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Il faudra aussi penser à mettre à jour ton docXML de temps en temps, car là, tu travailles toujours sur la première version récupérée, donc tu ne risques pas de voir beaucoup d'évolutions
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h46   #7
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Ah oui ... Merci Bovino remarque pertinente

Par contre andry.aime ton script ne s’exécute toujours qu'une seul fois pour moi
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 13h58   #8
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 806
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 806
Points : 35 803
Points : 35 803
Citation:
ton script ne s’exécute toujours qu'une seul fois pour moi
Normal, tu utilises writeln sur un document fermé

Un document HTML possède deux états distincts : opened et closed.
Lorsque tu utilises wrtie() ou writeln() quand le document est ouvert, JavaScript insère le ou les paramètres dans le document à l'endroit de l'appel de la méthode.
Si le document est fermé, alors JavaScript l'ouvre avant d'insérer le contenu et l'ouverture implique que la page est recréée, donc que son contenu disparait, y compris son contexte JavaScript, en particulier les timers.

D'où le conseil habituellement donné de ne pas utiliser write() !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 15h07   #9
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Ah oui super merci ! Sujet résolu

Par contre j'ai un autre problème assez étrange je trouve ...

"etat[0].firstChild.nodeValue" me génère une erreur : "etat[0] is undefined" si je retire le window.alert(etat.length).
Mais je n'ai pas cet erreur si je laisse le window.alert, étrange

Si vous avez le courage de répondre à ma question ...
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 15h20   #10
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 126
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 126
Points : 7 270
Points : 7 270
Essaye avec
Code :
1
2
3
4
5
6
window.onload = function() {
	docXml = document.implementation.createDocument('', '', null);
	docXml.async = false;
	docXml.onload=function(){setInterval( function(){maFonction()}, 10000);};
	docXml.load("fichierXML.xml");
};
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 11h45   #11
Membre éclairé
 
Avatar de humitake
 
Homme Olivier
Étudiant
Inscription : novembre 2010
Messages : 303
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 20
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2010
Messages : 303
Points : 384
Points : 384
Super merci
humitake est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h25.


 
 
 
 
Partenaires

Hébergement Web