El problema es este:
Cuando se hace un request, el servidor hace el loop, y si el usuario hace otro request cuando todavia no se cerro la conexion anterior, el servidor espera a que primero se cierre la conexion anterior para procesar la nueva. (Estoy usando Apache en linux).
Una posible solucion:
Al realizar el segundo request se aborte el primero.
Creo necesito usar el metodo abort() del objeto 'rpc'
Pero no se donde deberia ir eso..
alguna ayuda??
Código:
function sendRequest() { var rpc=aj(); if(rpc){ rpc.open('POST','center.php',true); rpc.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); var aEnviar=''; for(ii=0; ii<arguments.length;ii++){ aEnviar+=arguments[ii].desc+'='+encodeURIComponent(arguments[ii].dato)+'&'; } rpc.onreadystatechange=function(){ if(rpc.readyState==4){ if(rpc.status >= 200 && rpc.status < 300) { //Handle Response handleResponse(rpc.responseText); }else{ alert('Se perdio la conexion'); } }else{ //precarga } } rpc.send(aEnviar); } } function aj(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); } else{ try{ return new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){ alert('tu navegador no soporta ajax'); return false; } } }