Buenas a todos colegas:
Tengo el siguiente codigo que funciona muy bien en IE pero en FFX no me funciona bien.
La idea: tengo una funcion que me crea un obj httprequest global que luego uso en mi webapp.
la funcion es:
Código PHP:
// crea el obj ajax
// funcion para crear el http
function CrearAjax() {
var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
la funcion funciona muy bien. y la invoco con
Código PHP:
_ajax = CrearAjax();
la uso con la funcion :
Código PHP:
function sendAjax(page,params, functionCallBack){
_ajax.open('get',page+'?'+params,true);
_ajax.onreadystatechange= functionCallBack;
_ajax.send(null);
}
que funciona muy bien con algo como :
Código PHP:
sendAjax('test.php','action=1', fCallBack);
//y en otro lado
function fCallBack(){
if(_ajax.readyState == 4 && _ajax.status==200 ){
var res = _ajax.responseText;
....... mi codigo ......
}
}
como les comente todo esto anda de pelos...
pero el problema esta cuando quiero hacer algo como :
Código PHP:
function F1(){
sendAjax('test.php','action=1', f1CallBack);
}
//y en otro lado
function f1CallBack(){
if(_ajax.readyState == 4 && _ajax.status==200 ){
var res = _ajax.responseText;
....... mi codigo ......
F2();
}
//donde
function F2(){
sendAjax('test.php','action=2', f2CallBack);
}
function f2CallBack(){
if(_ajax.readyState == 4 && _ajax.status==200 ){
var res = _ajax.responseText;
....... mi codigo 2......
}
Al ejecutar en algun momento F1, lo que me pasa en FireFox es que se ejecuta dos veces f1CallBack con las respuestas de la llamada por F1 primero y luego por F2, cuando en realidad se deberia ejecutar una vez cada funcion (F1, F1callBack, F2, F2Callback) en ese orden, como bien pasa en IE...
alguna idea ?????
cualquier ayuda soy todo ojos!!!!