dilluns, 20 d’agost del 2007

Delay con Javascript (Delay amb Javascript)

Las funciones siguientes nos permiten parar durante x segundos la ejecución de codigo Javascript. La función delay se encarga de hacer la pausa mediante el setTimeout. El primer parámetro de del setTimeout es el nombre de la función que se ejecutarà al final de la pausa, y el segundo son los milisegundos (en este caso 5000 milisegundos).


Les funcions següents ens permeten aturar durant x segons l'execució del codi Javascript. La funció delay() és l'encarregada de fer la pausa mitjançant el setTimeout. El primer paràmetre del setTimeout és el nom de la funció que es cridarà al final de la pausa, i el segon són els milisegons (en aquest cas 5000 milisegons).



Código (Codi)
function delay(){
    setTimeout('afterFiveSeconds()',5000)
}

function afterFiveSeconds(){
    alert("after 5 seconds");
}



10 comentaris:

Anònim ha dit...

Eso no es pausar la ejecución de JavaScript, sino desencadenar un evento más tarde. Como comprenderás, no es lo mismo.

Sergi Puigdomènech ha dit...

Es lo mismo. La función lo que hace es parar momentaneamente la ejecución javascript (pausa) para posteriormente seguir con la ejecución.

Anònim ha dit...

En realidad no es lo mismo xq lo q hace es decir : en cinco segundos ejecuta esto ... y no espera cinco segundos para hacerlo, asi q utilizandolo asi el codigo q este despues de esa funcion continuara su ejecucion sin esperar nada

Sergi Puigdomènech ha dit...

Lo que dices és cierto. Aunque para solventarlo, se podria llamar a una función para que realize el resto del script de esta forma:

function afterFiveSeconds(){
alert("after 5 seconds");
siguiente();
}

function siguiente(){
//resto del código
}

Unknown ha dit...

Si lo unico que te interesa es detener TODA la ejecucion del codigo, lo podes hacer asi


function pause(milisec){
var d = new Date();
var begin = d.getTime();

while ((d.getTime() - begin ) > milisec){
// nothing...
}
}

Unknown ha dit...

Per començar, no funcionaría perquè falta el ";" desprès del primer "setTimeout('afterFiveSeconds()',5000)" ejjeje

Per un altre banda, jo considero que no es pausa l'execució del codi, simplement fas un retard pero forma part del codi...

Unknown ha dit...

Has programat poc amb JS xavalot...

Anònim ha dit...

Una mica trolls alguns, no? S'ha de trollejar constructivament :D

Anònim ha dit...

[url=http://ivlkrwnnz.com]mmYVrpFVelEyKwkIM[/url] - LNjpTlQOILcBd - http://yuxeflk.com

Anònim ha dit...

var d = new Date();
var begin = d.getTime();

var a=0;
while (a==0){
d=new Date();
if(d.getTime()-begin>2000){
a=1;
}
}

Como estaba bien posicionada la entrada posteo aunque sea un poco tarde. Este código permite parar toda la ejecución durante dos segundos, rectifica a un comentario anterior, ya que en su código el while siempre se comprobaba con las misma fecha, definida antes de entrar al while.