Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/04/2008, 08:05
carloshuchim
 
Fecha de Ingreso: junio-2007
Ubicación: Mérida, Yucatán, México
Mensajes: 94
Antigüedad: 16 años, 10 meses
Puntos: 1
Re: se puede poner una pausa en un bucle ?

No puedes pausar un script de PHP, en espera de lo que pida el usuario, cada vez que el usuario actualiza la página, el interprete abre el archivo lo procesa, se lo devuelve al navegador y con esto finaliza el script.

Puedes usar LIMIT para realizar tu proceso por secciones... y utilizar ajax para ejecutar el script por cada bloque...

El siguiente JavaScript ejecuta un archivo despues del otro, puedes modificarlo para que el usuario oprima pausar...


Cita:
var Archivos = new Array(
{text: "Seccion 1",url: "script.php?start=0&end=10", DoEvents: false, completed: false},
{text: "Seccion 2", url: "script.php?start=11&end=20", DoEvents: false, completed: false},
{text: "Seccion 3", url: "script.php?start=21&end=30", DoEvents: false, completed: false}
);

function EjecutarArchivos() {


//document.getElementById("lblstatus").innerHTML = "Iniciando instalacion...";


if (Archivos.length == 0) {
alert("Hey");
return false;
}

//document.getElementById("lblstatus").innerHTML = "";

for (i=0; i<Archivos.length; i++) {
if (Archivos[i].url != "") {
Ejecutar(Archivos[i].url, i, Archivos[i].text, Archivos[i].DoEvents);
}
}


}

function Ejecutar(file, objectid, text, openmode) {
var returnvalue;


<!-- Initialize the XMLHttpRequest Object -->

var xmlhttp=false;

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

<!-- End XMLHttpRequest Initialization -->

try {
xmlhttp.open("GET", file, openmode);
}
catch(e) // El navegador no permite las peticiones externas.
{
alert("Su navegador no permite realizar peticiones via XML, por favor contacte con su administrador");
return false;
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status != 200) {
alert("No se pudo hallar " + systemURL + " Por favor contacte con el administrador");
returnvalue = false;
}else{
if ( xmlhttp.responseText == "" ) {
//nothing value
} else {
ajaxResponse = xmlhttp.responseText;
if (ajaxResponse == "ok") {
returnvalue = true;
Archivos[objectid].completed = true;
//Archivo ejecutado, imprime ok si todo salio bien...
if ((Archivos.length-1) == objectid) {

//Este es el último archivo a cargar de la lista
alert("Se ha finalizado la ejecución de las rutinas");

}

} else {
//algun error en el scrpt?
returnvalue = false;

}
}
}
}else{

}
};
xmlhttp.send(null);
return returnvalue;
}

Última edición por carloshuchim; 30/04/2008 a las 08:17 Razón: Agregué código