hasta ahora he usado ajax de una manera de lo más simple, mediante un botón llamaba a una función que ejecutaba un script y este a su vez mostraba un texto que yo luego escribía en un div, pongo un ejemplo para que lo comprendáis antes:
Cita:
Esto lo que hace es que cuando el script en ASP que llama la sentencia Ajax acaba, pues muestra el texto devuelto.<script language="javascript">
function nuevoAjax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
</script>
<script language="javascript">
function procesos (urls) {
var fragment_url = '/includes/ajax/importacion.asp?tipo='+urls;
//abrimos la url
peticion = nuevoAjax();
document.getElementById("datosv").innerHTML = "<center><br><br><br><br><img src='/img/general/cargando.gif'><br><b style='font-size:12px;'>Cargando datos, espere...</b></center>"
peticion.open("GET", fragment_url);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
//escribimos la respuesta
document.getElementById('datosv').innerHTML = unescape(peticion.responseText);
}
}
peticion.send(null);
}
</script>
function nuevoAjax()
{
/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
lo que se puede copiar tal como esta aqui */
var xmlhttp=false;
try
{
// Creacion del objeto AJAX para navegadores no IE
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try
{
// Creacion del objet AJAX para IE
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(E) { xmlhttp=false; }
}
if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); }
return xmlhttp;
}
</script>
<script language="javascript">
function procesos (urls) {
var fragment_url = '/includes/ajax/importacion.asp?tipo='+urls;
//abrimos la url
peticion = nuevoAjax();
document.getElementById("datosv").innerHTML = "<center><br><br><br><br><img src='/img/general/cargando.gif'><br><b style='font-size:12px;'>Cargando datos, espere...</b></center>"
peticion.open("GET", fragment_url);
peticion.onreadystatechange = function() {
if (peticion.readyState == 4) {
//escribimos la respuesta
document.getElementById('datosv').innerHTML = unescape(peticion.responseText);
}
}
peticion.send(null);
}
</script>
Pero tengo una duda que no sé como resolver, si por ejemplo, ese script es largo y tiene varios procesos:
1. Descargar algo
2. Tratarlo
3. Mostrarlo
Me gustaría que en el DIV donde pongo el resultado fuese mostrando esos procesos uno por uno...
No sé si me entienden, seguramente será una tontería pero estoy bastante perdido la verdad...
Porque ahora mismo tan solo puedo escribir una única vez, no puedo ir escribiendo lo que me devuelve el script.
Un saludo!