Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Extraño, en IE si y en FireFox no :(

Estas en el tema de Extraño, en IE si y en FireFox no :( en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/06/2006, 18:31
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 21 años, 2 meses
Puntos: 2
Extraño, en IE si y en FireFox no :(

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,paramsfunctionCallBack){
 
 
_ajax.open('get',page+'?'+params,true);
 
_ajax.onreadystatechangefunctionCallBack;
 
_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 == && _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 == && _ajax.status==200 ){
        
        var 
res _ajax.responseText;
               ....... 
mi codigo ......
               
F2();

}

//donde 
function F2(){
     
sendAjax('test.php','action=2'f2CallBack);
}

function 
f2CallBack(){
if(
_ajax.readyState == && _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!!!!
__________________
Keep it simple and keep it fast.
  #2 (permalink)  
Antiguo 03/07/2006, 15:40
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 21 años, 2 meses
Puntos: 2
Lamentablemente sigo dando vueltas con esto.... no encuentro la forma de hacer una simple funcion que pueda pasar por parametro el callBack y listo... tengo problemas cuando trato de hacerlo en FireFox.... alguna idea....

Quiero evitar tener crear un obj HTTPRequest en cada llamada, por eso quiero implementar algo del estilo SendAjax que ya me lo resuelva....

ideas ?????
__________________
Keep it simple and keep it fast.
  #3 (permalink)  
Antiguo 03/07/2006, 20:56
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 7 meses
Puntos: 35
loading..............


tuve tu mismo problema al principio y parece lo mas logico que todo funcione en un proceso BATCH pero NO!!!! lamentablemente no sucede asi, lo que yo hize fue en los callbacks a funciones pasarle un parametro qu es el objeto ajax, asi recibo el objeto y no tuve problemas paa trabjar con lo mismo, te sugiero que no uses una variable global para tus procesos sino variables independientes.



connection closed.
__________________

Maborak Technologies
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:28.