Foros del Web » Programando para Internet » Javascript »

delay

Estas en el tema de delay en el foro de Javascript en Foros del Web. Buenas, Hay alguna forma de hacer un delay (sin que se ejecute el resto del código, como sucede con setTimeout() ) ?... o sea, que ...
  #1 (permalink)  
Antiguo 21/02/2007, 10:54
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
delay

Buenas,

Hay alguna forma de hacer un delay (sin que se ejecute el resto del código, como sucede con setTimeout() ) ?... o sea, que se detenga en ese punto la ejecución del código

gracias
  #2 (permalink)  
Antiguo 21/02/2007, 11:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: delay

Hola:

Los únicos temporizadores son setTimeout y setInterval... tal vez se pueden usar para simular lo que quieres, por ejemplo no asignar los src de las imagenes hasta un tiempo determinado o esperando que se carguen las anteriores, y los contenidos, ir incrustándolos con el DOM de forma temporizada...

Tal vez si nos dijeses tu intención, podríamos ayudarte mejor.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 21/02/2007, 12:25
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: delay

El tema es que en el trabajo usamos una clase en javaScript para obtener los datos de la BBDD que hizo un compañero (síncrona).

El tema está en que simplemente pretendo mostrar un mensaje tipo "obteniendo datos" justo antes de hacer la consulta, pero ocurre que el mensaje no se muestra (sí lo hace si pongo un alert entre la escritura del menaje y la consulta a la BD con dicha clase...

setTimeOut y setInterval no me sirven, ya que continúa la ejecución del código.

Gracias
  #4 (permalink)  
Antiguo 21/02/2007, 17:25
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: delay

Sí, hice yo un ejemplo parecido, pero es algo un poco complicado.

Se trata de tener una variable que almacene el estado de algo, y una función que verifique si el estado cambia, entonces continuar el hilo.

http://www.forosdelweb.com/f13/aporte-programacion-secuencial-432551/

Te aviso de que te lo tienes que leer con suavidad, y que el código puede mejorarse, pero para cosas simples es válido. Incluso se pueden simular sleeps...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #5 (permalink)  
Antiguo 22/02/2007, 00:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: delay

Hola:

¡Que tal derkenuke (¡Hola ):
He visto por encima tu código, y recuerdo que tuve el mismo problema que comentaba en el el_javi en el mismo mensaje, para hacer recursión (temporizada) sobre objetos concretos en un sistema que tengo de menús (el que tengo en la página de mi perfil -caricatos.net-), y lo solucioné insertando en los nuevos objetos creados un campo que llamo nombre con el mismo nombre de la variable:

function miObjeto(nombre, descriptor1, descriptor2) {
this.nombre = nombre;
this.descriptor1 = descriptor1;
this.descriptor2 = descriptor2;
}
Y al crearlo repito el nombre de la variable en el primer parámetro:
var objetoNuevo = new miObjeto("objetoNuevo", dato1, dato2);
Para ayudar a referenciarlo se puede reescribir su método toString() para que devuelva su nombre:
miObjeto.prototype.toString = function() {return this.nombre;}

Y un par de ejemplos de temporización:

Código:
miObjeto.prototype.mostrarTemporizado = function() {setTimeout("alert('" + this +"')", 1000)}
miObjeto.prototype.mostrarTemporizado2 = function() {setTimeout("alert(window['" + this +"'])", 2000)}
var x = new miObjeto("x", "y", "z");
x.mostrarTemporizado();
x.mostrarTemporizado2();
Lo que no sé es si a MikiBroki pueda servirle.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 22/02/2007, 09:13
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: delay

Gracias, esta tarde o mañana cuando lo pruebe os comento
  #7 (permalink)  
Antiguo 22/02/2007, 10:08
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: delay

Hola caricatos!

Me ha gustado, también pensé en ponerle la propiedad nombre, pero no me decidí por ello porque si cambiaba el nombre a las variables también tenía que cambiar esas propiedades, y era un engorro. Además no me gusta escribir dos veces la misma cosa , por eso escribí la parte de "serializar" en una matriz con un número aleatorio.


Lo que yo básicamente quería es que el coche acelerase a una velocidad, y cuando acabase de acelerar (instante que desconocería, ya que puede acelerar más rápido o más lento, o hasta un límite mayor o menor) entonces realizar otra acción.


También podía simularlo, es decir, si quiero acelerarlo de 0 a 50km/h y depués frenarlo, mido lo que tarda en acelerar y llamo con un setTimeout a la función frenar según lo que tardase.

A eso le veo el problema que en cuanto cambio algo y quiero que acelere de 0 a 60, ya tendría que cambiar dos cosas: el 60 mismo y el tiempo del segundo setTimeout. Volvemos al problema de antes de tocar dos cosas para cambiar sólo una.


Si se os ocurre una mejor manera de hacerlo, bienvenida sea.

Un saludo a los dos!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 08:47.