Buenas dablin,
He investigado un poco y he dado con una forma algo mas genérica para solucionar el problema. Se trata de hacer la vble ajax globlal e inicializada a null. Cuando el objeto ajax recibe el contenido de la página procesada lo insertamos y volvemos a colocar la vble globlal a null. De esta forma podemos preguntar lo primero de todo por el valor de la vble, si esta no es igual a null es que hay un proceso ajax corriendo entonces por medio de setTimeout (ejecución retardada) volvemos a llamar a la función. La cosa quedaría asi:
Código javascript
:
Ver originalvar ajax=null; //vble global
//Funcion que crea el objeto ajax
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function f1(url,divcontenido){
if (ajax==null) {
objDestino=document.getElementById(divcontenido)
ajax=objetoAjax();
ajax.open("POST", url, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
objDestino.innerHTML = ajax.responseText
ajax = null
}
}
ajax.send(null)
}else{
setTimeout("f1('"+url+"','"+divcontenido+"')",10)
}
}
Código html:
Ver original
//Código javascript
<input type='button' value='actualiza' onclick="javascript:f1('prueba1.php','div1');javascript:f1('prueba2.php','div2');javascript:f1('prueba3.php','div3');javascript:f1('prueba4.php','div4');"> <div style="clear:both"></div> <div style="width:50%;float:left" id="div1"></div> <div style="width:50%;float:left" id="div2"></div> <div style="width:50%;float:left" id="div3"></div> <div style="width:50%;float:left" id="div4"></div>
Si te fijas hacemos 4 llamadas a f1., pero la llamada ha cambiado, ya no pasamos el objeto div a la función f1 sino su identificador (del div). Lo hago asi para poder hacer la llamada a setTimeout pasándoselo por parámetro a f1, función que se ejecutará con retardo.
prueba1.php
Código html:
Ver original<font style="font-size:30pt;color:red;">contenido prueba1.php</font>
prueba2.php
Código html:
Ver original<font style="font-size:30pt;color:green;">contenido prueba2.php</font>
prueba3.php
Código html:
Ver original<font style="font-size:30pt;color:blue;">contenido prueba3.php</font>
prueba4.php
Código html:
Ver original<font style="font-size:30pt;color:yellow;">contenido prueba4.php</font>
Espero sea lo que buscabas y haberte ayudado, Saludos