Foros del Web » Programando para Internet » Javascript »

Duda setTimeout - clearTimeout

Estas en el tema de Duda setTimeout - clearTimeout en el foro de Javascript en Foros del Web. Hola expertos, tengo una duda sobre si se puede usar una sentencia de este tipo en Javascript : var timer=setTimeout("document.getElementById('minigui a').style.visibility='visible'",0); setTimeout("clearTimeout(timer)",6000); Es decir, si ...
  #1 (permalink)  
Antiguo 02/12/2009, 03:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Duda setTimeout - clearTimeout

Hola expertos,

tengo una duda sobre si se puede usar una sentencia de este tipo en Javascript:

var timer=setTimeout("document.getElementById('minigui a').style.visibility='visible'",0);

setTimeout("clearTimeout(timer)",6000);

Es decir, si un clearTimeout dentro de un setTimeout es una sentencia válida.

Es que necesito controlar que se oculte una tabla a los 6 segundos de haberse mostrado.

Sé que suena sencillo pero por lo que veo JS se salta los setTimeout y ejecuta otras sentencias hasta que se cumple el tiempo, o es cosa mía...

Muchas gracias por la ayuda!
  #2 (permalink)  
Antiguo 02/12/2009, 04:22
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Duda setTimeout - clearTimeout

Cita:
Es decir, si un clearTimeout dentro de un setTimeout es una sentencia válida.
si, es perfectamente valido. dentro de setTimout puedes ejecutar la sentencia que quieras.

Cita:
Sé que suena sencillo pero por lo que veo JS se salta los setTimeout y ejecuta otras sentencias hasta que se cumple el tiempo, o es cosa mía...
da la sensacion que se salta el codigo, pero mas bien es que esta programado para ejecutar el codigo pasados los milisegundos. ahora bien, setTimout ni setInterval detienen el proceso de ejecucion. es decir, el interprete sigue leyendo el resto de las lineas hasta pasado los milisegundos.

Cita:
Es que necesito controlar que se oculte una tabla a los 6 segundos de haberse mostrado.
si de eso se trata, pues tu codigo no hace mucho sentido.

Código:
var timer=setTimeout("document.getElementById('miniguia').style.visibility='visible'",0);
setTimeout("clearTimeout(timer)",6000);
la primera linea se ejecuta tan pronto el interprete lo lee debido a los 0 milisegundos. la segunda linea, no se que pretendes hacer, ¿ocultarlo? pues esa linea no tiene ninguna relacion a la ocultacion, lo que intenta hacer es cancelar el tiempo programado de la primera linea, el cual no tiene sentido porque se estima que en ese momento ya se interpreto el codigo.

lo que necesitas es, volver al ejecutar la primera linea pero con valor diferentes para la visibilidad y un tiempo diferente.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 02/12/2009, 05:08
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Duda setTimeout - clearTimeout

Gracias por tu respuesta zerokilled.

Quizás no me he expresado bien, el problema que tengo es que yo necesito que se muestre el elemento (en este caso una tabla) y a los 6 segundos se oculte automáticamente.
Por otro lado, el usuario debería poder ocultar/mostrar manualmente el elemento al pulsar otra tecla, el problema es que si el usuario pulsa la tecla antes de que se cumplan los 6 segundos, las instrucciones chocan y los if que tengo en el código se vuelven locos.

Por lo que dices podría probar a usar 2 elementos distintos para controlar esto, así que probaré con lo que dices.

Aprovecho para lanzar otra pregunta, ¿cómo se detiene la ejecución del código en un punto con JS?

Un saludo.
  #4 (permalink)  
Antiguo 02/12/2009, 05:31
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Duda setTimeout - clearTimeout

Cita:
Aprovecho para lanzar otra pregunta, ¿cómo se detiene la ejecución del código en un punto con JS?
si es que comprendi bien la pregunta, en javascript no se puede. en javascript no existe instrucciones para detener la ejecuccion y luego continuar. si hay instrucciones que detienen la ejecuccion pero tienen otros propositos, por ejemplo las instrucciones de ventanas modales (alert, confirm, prompt). pero como mencione, el proposito principal es otro, y el efecto secundario es detener el script.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 03:26.