Estoy acostumbrado a utilizar estas funciones para trabajar con AJAX, con la idea de poder utilizar ante distintos casos las mismas funciones cuando contesta el server(readyState == 4), y por eso utilizo una funcion CallBack.
Funcion para crear el Obj HTTPRequest
Código PHP:
function CrearAjax() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var _ajax = CrearAjax();
Funcion para hacer una peticion al server
Código PHP:
function sendAjax(page,params, functionCallBack){
_ajax.open('get',page+'?'+params,true);
_ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
_ajax.onreadystatechange= functionCallBack;
_ajax.send(null);
}
Funcion ejemplo para tratar la respuesta
Código PHP:
function getDataCallBack(){
if(_ajax.readyState == 4){
var res = _ajax.responseText;
setDiv('d_main',makeJSONGrid(res));
}
}
Problema:
Como ven utilizo una variable global _ajax, y mi problema esta cuando quiero hacer varias llamadas en paralelo para obtener diferente info. No puedo tener varios _ajax ya que no se cuantos llamados en paralelo haga. Tampoco puedo crearlos dentro de la funcion sendAjax porque pierdo la encapsulacion que logro con la funcion CallBack y esto representa muchas lineas de codigo de gusto.
Pregunta:
Puedo hacer algo del estilo
Código PHP:
_ajax.onreadystatechange= functionCallBack(_ajax);
y de esta forma creo dentro de sendAjax el objeto y en el if de la funcionCallBack utilizo ese objeto pasado por parametro para el
Código PHP:
if(_ajax.readyState == 4){
Mil gracias por el tiempo!