Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Reloj con Javascript

Estas en el tema de Reloj con Javascript en el foro de Javascript en Foros del Web. Hola a todos. Encontré un videotutorial en internet sobre como hacer un reloj digital en Javascript MUY sencillo. Yo soy bastante novato en este tema ...
  #1 (permalink)  
Antiguo 13/07/2013, 08:55
Avatar de blancoarnau  
Fecha de Ingreso: junio-2013
Mensajes: 119
Antigüedad: 10 años, 10 meses
Puntos: 0
Reloj con Javascript

Hola a todos. Encontré un videotutorial en internet sobre como hacer un reloj digital en Javascript MUY sencillo. Yo soy bastante novato en este tema y no entendí una cosa del código:

Código HTML:
Ver original
  1. <title>Reloj</title>
  2. </head>
  3. <body onload="reloj()"><div id="body"></div>
  4. </body>
  5. <script type="text/javascript">
  6.     function reloj() {
  7.         var time = new Date();
  8.         var hora = time.getHours();
  9.         var minutos = time.getMinutes();
  10.         var segundos = time.getSeconds();
  11.         var recarga = setTimeout("reloj()", 1000);
  12.  
  13. document.getElementById("body").innerHTML= hora + ":" + minutos + ":" + segundos;
  14.     }
  15. </html>

No entiendo porque la variable "recarga" le igualamos a setTimeout, en teoría no tendría que hacer nada porque no la hemos nombrado en ningún sitio... ¿Alguien me lo puede explicar?

Última edición por blancoarnau; 13/07/2013 a las 09:11
  #2 (permalink)  
Antiguo 13/07/2013, 14:49
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Reloj con Javascript

Bueno setTimeout es un método para el uso de los tiempos, es decir si queremos que después de un tiempo determinado se haga el llamado de una función, entonces lo que debemos usar es el método "setTimeout". El método setTimeout utiliza 3 argumentos como vemos a continuación.
var miSetOut = setTimeout( Funci , Tiempo );

Con eso pues se debe entender el porque esa variable se iguala al metodo.

saludos

la info la saque de esta pagina:
http://fgualambo.blogspot.mx/2011/10/uso-del-metodo-settimeout-en-javascript.html
  #3 (permalink)  
Antiguo 13/07/2013, 19:17
Avatar de alberto510a  
Fecha de Ingreso: abril-2013
Mensajes: 351
Antigüedad: 11 años
Puntos: 35
No te hace falta igualarlo a recarga ni nada porque tu esa variable no la necesitas está ahí como para darle un nombre pero tu tan solo estas usando una función que hace que cada 1000 milisegundos se ejecute otra.


Saludos
  #4 (permalink)  
Antiguo 14/07/2013, 02:29
Avatar de blancoarnau  
Fecha de Ingreso: junio-2013
Mensajes: 119
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Reloj con Javascript

Pero sigo sin entender porque al escribirlo como una variable se ejecuta. El código que yo usaría es:
Código HTML:
Ver original
  1. <title>Reloj</title>
  2. </head>
  3. <body onLoad="reloj()"><div id="body"></div>
  4. </body>
  5. <script type="text/javascript">
  6.     function reloj() {
  7.         var time = new Date();
  8.         var hora = time.getHours();
  9.         var minutos = time.getMinutes();
  10.         var segundos = time.getSeconds();
  11.         setTimeout("reloj()", 1000);
  12.  
  13. document.getElementById("body").innerHTML= hora + ":" + minutos + ":" + segundos;
  14.     }
  15. </html>

Funciona perfectamente pero no entiendo porque con una variable funciona... ¿Se entiende lo que quiero decir?
  #5 (permalink)  
Antiguo 14/07/2013, 07:19
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Reloj con Javascript

setTimeout es un método de window que devuelve un identificador numérico; esto es fácil de comprobar colocándolo dentro de un alert o de la consola:
Código PHP:
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8" />
<
title></title>
</
head>

<
body>
<
script>alert(setTimeout(function(){},500))</script>
</body>
</html> 
Ese identificador, si es asignado a una variable (por ejemplo: var timeoutID), sirve para cancelar la ejecución, antes de que venza el tiempo indicado en el 2do. argumento, utilizando la contraparte de este método, que es clearTimeout:
Código PHP:
clearTimeout(timeoutID); 
Si no vas a necesitar una cancelación no es necesario que "guardes" en una variable el valor de dicho identificador. En otras palabras, no es necesario que inicies ni asignes una variable con el valor del retorno del setTimeout.
Te recomiendo estas lecturas:
https://developer.mozilla.org/en-US/...dow.setTimeout
http://mdn.beonex.com/en/DOM/window.setTimeout.html
y especialmente este jsFiddle, el cual ejemplifica lo dicho acerca de la cancelación:
http://jsfiddle.net/madBYK/BjjBc/l

Última edición por Panino5001; 14/07/2013 a las 08:03

Etiquetas: html, reloj, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:18.