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 :

tempo dans programme


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut tempo dans programme
    bonjour,

    je voudrais ploquer mon programme pendant 0.1secondes avant de passer à la suite : existe t-il une commande pour ça ?

    j'ai vu qu'il y avait la commande setTimeout() mais ça ne me va pas car elle est asynchrone => ça m'obligerait à découper mon programme en pleins de sous-fonctions : mon programme deviendrai vite illisible et trop lourd à maintenir...

    Mon programme :
    je modifie la valeur d'une balise : le problème est que des fois ça va tellement vite que je ne vois pas les différentes etape => c'est pourquoi j'ai besoin de faire une mini tempo (pas trop longue pour ne pas trop ralentir le programme) après chaque changement de valeur de ma balise...

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    salut;

    je ne me rends pas bien compte de ce que tu fais dans cette page; par exemple, comment les contenus sont-ils modifiés? le sont-ils successivement? automatiquement, sans action client?...

  3. #3
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var d=new Date().getTime();
    while (new Date().geTime()<d+100) ; // boucle pendant 0.1 sec.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    non, ça ne fonctionne pas
    Je fais tourner mon programme en boucle avec à l'interrieur des tempos => la tempo fonctionne mais ça bloque le rafraichissement de la page web

    voici un exemple de code (on ne voit pas les differentes etapes):
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head>
    		<title>TOTO</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     
    		<style type="text/css">
    			body{
    				padding:0;
    				margin:0;
    				border:none;
    			}
     
    			p{
    				padding:0;
    				margin:0;
    				border:none;
    			}
     
    			input{
    				color:red;
    				margin:0;
    				padding:0;
    				border:2px solid #00039e;
    				font-size:0.9em;
    				min-width: 0;
    			}
     
    		</style>
    	</head>
     
    	<script type="text/javascript">			
    	// <![CDATA[
    		var k=0
    		var stpTempo=0
     
    		function fonction_start(){
     
     
    			while (k < 5){
    				document.getElementById("a_connexion").value = i
    				tempo1()
    			}
    		}
     
     
     
    		function tempo1(){
    			var d1=new Date().getTime()
    			var d2=d1
     
    			while (d2<d1+1000){ // 1sec
    				d2=new Date().getTime()
    			}
    			k=k+1
    		}
     
     
    	// ]]>
    	</script>
     
    	<body onload="fonction_start()">
    		<p><input type="button" value="CCCCCCC" id="a_connexion" class="mc1"/></p>
    	</body>
    </html>

    Description de mon application:
    Je refraichis periodiquement une page Web en allant chercher des infos grâce à AJAX. Pendant le processus Ajax, je fais défiler des caractères pour faire voir l'etat d'avancement.
    => Ce que je veux c'est que l'utilisateur voit qu'il y a un chargement en cours et qu'il voit tout de suite s'il y a une erreur...

  5. #5
    Membre expérimenté Avatar de marts
    Inscrit en
    Février 2008
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function fonction_start(){
     
    				document.getElementById("a_connexion").value = i
    				k++
    				if (k<5) setTimeout(fonction_start,1000);
     
    		}

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 63
    Par défaut
    Salut

    Tu pourrais faire une grosse boucle pour faire un peu planter le navigateur du client mais je pense pas qu'il aime ça ...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    Citation Envoyé par marts Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function fonction_start(){
     
    				document.getElementById("a_connexion").value = i
    				k++
    				if (k<5) setTimeout(fonction_start,1000);
     
    		}
    bonjour,

    cette solution n'ira pas car mon programme n'est pas composé que d'une boucle => j'appelle pleins de sous-fonctions différentes


    En fait je me complique les choses peut-etre inutilement => ce que j'ai besoins c'est que l'utilisateur voit qu'il y a des requètes AJAX en cours
    - je veux qu'il puisse savoir si :
    1- la requête a été envoyée
    2- le fichier de donné a été reçue
    3- le informations du fichier de donné ont été traitées et il n'y a pas d'erreurs

    => comment faite vous lorsque vous faites des appli AJAX pour que l'utilisateur sache qu'il y a des mises à jours en cours ?

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

Discussions similaires

  1. erreur dans programme java sur des vecteurs 3D
    Par HighSchool2005 dans le forum Langage
    Réponses: 18
    Dernier message: 15/02/2007, 16h38
  2. Mettre une tempo dans une boucle
    Par lilyla dans le forum MATLAB
    Réponses: 2
    Dernier message: 12/02/2007, 17h04
  3. commande shell dans programme C
    Par horkets dans le forum C
    Réponses: 1
    Dernier message: 01/11/2006, 14h55
  4. bug dans programme d'extraction de données d'une page web
    Par youpimevla dans le forum Web & réseau
    Réponses: 11
    Dernier message: 31/08/2006, 10h02
  5. Attacher un fichier à un mail dans programme C++.
    Par Hamdi Hedhili dans le forum MFC
    Réponses: 5
    Dernier message: 24/11/2005, 16h21

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