Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
956 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [javascript] pause,sleep, ou wait ou rien!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[javascript] pause,sleep, ou wait ou rien!

n°977641
yoskater
Posté le 10-02-2005 à 14:12:17  profilanswer
 

j'aimerai faire des pauses (pose fait des pauses repose t pauses etcc..dsl :pt1cable: ) dans une fonction...
 
mais je trouve pas la fction genre  wait(time) waitFor(time) sleep(time)...
du coup je fais ma propre fction
 

Code :
  1. function mapause(time){
  2.    d=new Date();
  3.    while(1){
  4.      n=new Date();
  5.      diff=n-d;
  6.      if diff > time
  7.         break;
  8.    }
  9. }


 
sauf que le navigateur (firefox ds mon cas) stop le script car il dit que cela provoque un ralentissement blablabla...
 
donc ;(
 
comment faire?
 

mood
Publicité
Posté le 10-02-2005 à 14:12:17  profilanswer
 

n°977656
FlorentG
Unité de Masse
Posté le 10-02-2005 à 14:22:03  profilanswer
 

Il faut utiliser la méthoede setTimeout pour faire des trucs à intervals réguliers.

n°977746
cerel
Posté le 10-02-2005 à 15:43:01  profilanswer
 

Il faut utiliser setTimeout comme l'a dit FlorentG.
Neanmoins il faut faire attention.
L'appel a setTimeout n'est pas "bloquant", ton code continue a s'executer, donc tu ne peux pas l'utiliser a la place de ta fonction. Tu dois adapter ton code.
 
Autre detail, si tu veux executer une fonction a intervales reguliers, tu dois a chaque timeout reutiliser la fonction setTimeout.

n°978309
yoskater
Posté le 11-02-2005 à 10:06:46  profilanswer
 

ah ouais mais nan...je connais setTimeout et ca me sert a rien je veux bloqué pdt n secondes...
 
sinon comment on force la fin d'un setTimeout()?stopTimeout()?

n°978316
FlorentG
Unité de Masse
Posté le 11-02-2005 à 10:12:40  profilanswer
 

Avec le setTimeout tu peux lancer ta fonction au bout de n secondes justement :)

n°978330
yoskater
Posté le 11-02-2005 à 10:23:58  profilanswer
 

euh j'ai pas l'impression qu'on se comprend.
mon script fait:
 
affichage d'une barre de chargement en fction de l'etat de chargement d'une liste d'image...
sauf que en 37ms c'est fini...
donc je voudrai mettre un wait() qq part...setTimeout me servirai pas

n°978359
FlorentG
Unité de Masse
Posté le 11-02-2005 à 10:36:36  profilanswer
 

Si, ça te servirait :D

n°978537
cerel
Posté le 11-02-2005 à 12:37:03  profilanswer
 

De toute facon en Javascript je ne connais que setTimeout...
Donc soit ca, soit rien du tout :D

n°978570
yoskater
Posté le 11-02-2005 à 13:20:44  profilanswer
 

ben je vois pas il me faut une fonction bloquante pas un  truc  comme settimeout() sinon c clair je peux bidouiller mais du coup ma barre de progression ne refletera pas l'etat d'avancement du telechargement...
 

Code :
  1. function loading(imgL){
  2.  pct=Math.round((nbImgLoaded/17)*100);
  3.  if ( (100-pct) < 10 ){
  4.   color="#0"+(100-pct)+"0000";
  5.  }
  6.  else
  7.  {
  8.   color="#"+(100-pct)+"0000";
  9.  }
  10.  affiche="<TR><TD colspan=\"2\" style=\"background:black;text-align:center;color:white;font-family:verdana;font-size:11px;\">Loading,please wait... "+imgL+"</TD></TR><TR><TD style=\"background:"+color+";text-align:right;color:white;font-family:verdana;font-size:11px;\"  width=\" "+pct+"%\">" +pct+"%</TD><TD bgcolor=\"black\" width=\" "+(100-pct)+ "%\"></TD></TR>";
  11.  document.getElementById("progression" ).innerHTML=affiche;
  12.  //il faut une PAUSE!
  13. }


Message édité par yoskater le 11-02-2005 à 13:21:14
n°978592
cerel
Posté le 11-02-2005 à 13:38:22  profilanswer
 

Il suffit d'adapter ton code.
Si avant tu voulais faire un truc du genre :

Code :
  1. while(dlpasfini) {
  2.   update();
  3.   sleep(10);
  4. }


Tu peux transformer ce code en qqch comme ca:

Code :
  1. update();
  2. function update() {
  3.   if (dlpasfini) {
  4.     // update ...
  5.     setTimeout("update", 10);
  6.   }
  7. }


Et voila, tu auras transforme ton while+sleep en un if + setTimeout.

mood
Publicité
Posté le 11-02-2005 à 13:38:22  profilanswer
 

n°978623
FlorentG
Unité de Masse
Posté le 11-02-2005 à 13:50:14  profilanswer
 

Voilà, seul un setTimeout est utilisable :D

n°980875
Riton
Posté le 14-02-2005 à 12:17:59  profilanswer
 
n°982950
Ruliane
Posté le 15-02-2005 à 23:13:02  profilanswer
 

Je crois que selon comment tu utilise setTimeout, tu peux choisir si il éxécute la fonction AVANT ou APRES les n secondes. (suivant dans quel ordre tu place les attributs ou un truc comme ça mais je suis pas sur)


---------------
Un proverbe chinois dit que lorsqu'on a rien à dire d'intéressant, on cite généralement un proverbe chinois.
n°983069
Hermes le ​Messager
Breton Quiétiste
Posté le 16-02-2005 à 00:21:59  profilanswer
 

yoskater a écrit :

euh j'ai pas l'impression qu'on se comprend.
mon script fait:
 
affichage d'une barre de chargement en fction de l'etat de chargement d'une liste d'image...
sauf que en 37ms c'est fini...
donc je voudrai mettre un wait() qq part...setTimeout me servirai pas


 
Où tu as vu qu'il est possible de suivre l'état de chargement d'une image toi ?  :heink:  

n°984489
yoskater
Posté le 17-02-2005 à 09:40:16  profilanswer
 

je parle d'une liste d'image pas d'une image...
 
11 images  
 
donc a l'evt Onload des images:
 
((nbChargé/11)*100)=% de chargement de la totalité des images


Message édité par yoskater le 17-02-2005 à 09:41:50
n°984494
FlorentG
Unité de Masse
Posté le 17-02-2005 à 09:43:27  profilanswer
 

Et tu charges quoi comme images ?

n°984925
yoskater
Posté le 17-02-2005 à 14:44:43  profilanswer
 

?euh des jpg? ;?

n°985734
FlorentG
Unité de Masse
Posté le 18-02-2005 à 09:57:55  profilanswer
 

J'veux dire, à quoi servent-elles ?

n°987107
yoskater
Posté le 19-02-2005 à 15:47:02  profilanswer
 

ben regarde..
 
http://yoan.rousseau.free.fr/MCaltosh/mcCaltosh.html


Message édité par yoskater le 19-02-2005 à 15:47:27
n°987145
FlorentG
Unité de Masse
Posté le 19-02-2005 à 16:52:35  profilanswer
 

Mouais, y'a moyen de faire presque sans images ;)

n°987183
yoskater
Posté le 19-02-2005 à 18:46:25  profilanswer
 

oui je sais mais c'etait pas le but, car c'etait un tp...
sur les images,chargement et confort utilisateur en dhtml


Message édité par yoskater le 19-02-2005 à 18:46:54
n°987556
Hermes le ​Messager
Breton Quiétiste
Posté le 20-02-2005 à 12:14:35  profilanswer
 

yoskater a écrit :

oui je sais mais c'etait pas le but, car c'etait un tp...
sur les images,chargement et confort utilisateur en dhtml


 
Je ne sais pas si on peut appeler un préchargement en JS un confort pour l'utilisateur... Moi je parlerais plutôt de nid à bugs inutile...  :o  


---------------
Expert en expertises
n°987606
yoskater
Posté le 20-02-2005 à 13:40:39  profilanswer
 

euh nid de bug merci pour mon code...
cela etant dit je pense que l'utilisateur prefere voir une barre de progression pdt que les images sont mis ds le cache plutot que de voir le  truc arriver images par images..genre les croix rouge remplacées les une aprés les autres...
 
de plus JS est un langage de script "correct" c'est juste que son utilisation devient parfois trés emmerdante pr des pb de compatibilité ...


Message édité par yoskater le 20-02-2005 à 13:41:54
n°988111
FlorentG
Unité de Masse
Posté le 21-02-2005 à 10:26:54  profilanswer
 

Ben si tu tiens aux images, suffit d'en avoir 2 pour toute la calto. Après pour ce qui est texte, tu le met en dur dans le code HTML :)

n°1090832
cosminutza
Posté le 20-05-2005 à 15:25:30  profilanswer
 

yoskater a écrit :

j'aimerai faire des pauses (pose fait des pauses repose t pauses etcc..dsl :pt1cable: ) dans une fonction...
 
mais je trouve pas la fction genre  wait(time) waitFor(time) sleep(time)...
du coup je fais ma propre fction
 

Code :
  1. function mapause(time){
  2.    d=new Date();
  3.    while(1){
  4.      n=new Date();
  5.      diff=n-d;
  6.      if diff > time
  7.         break;
  8.    }
  9. }


 
sauf que le navigateur (firefox ds mon cas) stop le script car il dit que cela provoque un ralentissement blablabla...
 
donc ;(
 
comment faire?


 
 
En transformant la fonction de la façon suivante:

Code :
  1. function mapause(time)
  2. {
  3.    d=new Date();
  4.    diff=0;
  5.     while(diff < time)
  6.     {
  7.       n=new Date();
  8.       diff=n-d;
  9.      } 
  10. }


 
celle-ci passe sous IE et firefox  ;)  
 

n°1091142
cerel
Posté le 20-05-2005 à 18:38:11  profilanswer
 

Oui mais non, certes la fonction est "bloquante", mais elle est bloquante de chez bloquante.
Pendant l'execution de la fonction, la page ne continue pas a se charger.
 
Alors qu'avec un setTimeout, la page continue a se charger.

n°1091226
afbilou
pouet your life
Posté le 20-05-2005 à 20:14:01  profilanswer
 

Bah son code est coherent ... il tient la route je trouve.
 
Ceci dit, hors TP, je prefere etre sur un site qui s'affiche au fur et a mesure plutot qu'il utilise ce genre d'artifice. :p

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [javascript] pause,sleep, ou wait ou rien!

 

Sujets relatifs
Mettre de l'HTML dans un layer (type infobulle) en JavaScript.[ASP.NET JAVASCRIPT]
[Javascript][résolu] Empêcher les posts monosmilesques[HTML/Javascript] gallerie avec image survolée et affichage séparé
Modifier le type d'un élément de formulaire en javascript[Résolu] Pb dans mon code javascript
Javascript: objet qui FUIT la sourisControle ASP.NET et javascript ?
Problème PHP/Javascriptexecuter un fichier avec commande javascript
Plus de sujets relatifs à : [javascript] pause,sleep, ou wait ou rien!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR