Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/10/2007, 19:17
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 23 años
Puntos: 45
Re: como controlar la ejecucion...

Tema complicado zyon, tema complicado.

Quizás con algún truco tipo...

Código PHP:
// escribir en el documento una ristra (x)html fuera de tiempo de ejecución.
function e(q,sinBR) {
    var 
elDIV = document.createElement("DIV");
    if(
q==undefined) q="";
    if(!
sinBR) q+="<br/>";
    
elDIV.innerHTML = q;
    for(var 
a=0; elDIV.childNodes.length>a; a++) {
        
document.body.appendChild( elDIV.childNodes[a].cloneNode(true) );
    }
}

var 
finDeTardona = false, comprobador;
function 
tardona() {
    
e("Entro en tardona");
    
// .... cosas que tardan
    // el setTimeout es sólo para simular que la ejecución de tardona() tarda 5 sgs
    
setTimeout( function() {
        
finDeTardona = true;
        
e("finDeTardona = true");
    } , 
5000);
}

function 
segundona() {
    
e("Entro en segundona!");
}

function 
principal() {
    
tardona();
    
// Sólo y sólo cuando acabe tardona (finDeTardona = true) ejecutaremos la segundona
    // Comprobaremos si finDeTardona = true cada medio segundo, para ver si podemos lanzar la segundona
    
comprobador = setInterval( function() {
        
e("Comprobando: finDeTardona es "+finDeTardona);
        if( 
finDeTardona == true ) {
            
finDeTardona = false;            // reestablecemos
            
clearTimeout( comprobador );    // paramos de comprobar
            
segundona();
        }
    }, 
500);
}

window.onload = principal; 
Claro, que se podría hacer de una manera más global para llamar a cualquier función después de ejecutarla... pero supongo que llevaría más tiempo y más mente abstracta para implementarlo, depende cuales sean tus necesidades finales.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.