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

ReadyState a 4 dos veces en iExplorer

Estas en el tema de ReadyState a 4 dos veces en iExplorer en el foro de Frameworks JS en Foros del Web. Hola, tengo el siguiente código para generar el objeto xhr: Código: function Tajax() { var xmlhttp; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) ...
  #1 (permalink)  
Antiguo 30/06/2006, 04:39
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 1 mes
Puntos: 1
Pregunta ReadyState a 4 dos veces en iExplorer

Hola, tengo el siguiente código para generar el objeto xhr:

Código:
function Tajax() {
  	var xmlhttp;
  	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(); xmlhttp.overrideMimeType("text/xml"); }
	return xmlhttp;
}
function ajax(){
	var obj = Tajax();
	obj.open('GET','pagina.php',true);
    	obj.onreadystatechange = function Response(){
    		alert('Estado: '+obj.readyState);
    	};
	obj.send(null);
}
Mi problema es que en internet explorer el readyState cambia a 4 dos veces, lo cual me ejecuta dos veces el contenido del readyState 4 provocandome problemas. Esto no me pasa en firefox. Según el código de arriba, en iExplorer el alert salta dos veces mostrando Estado: 4.
Alguien sabe si esto es normal? o por qué puede estar pasando?

Muchas gracias por responder.
Un saludo.
  #2 (permalink)  
Antiguo 30/06/2006, 04:52
 
Fecha de Ingreso: marzo-2005
Mensajes: 4
Antigüedad: 19 años, 1 mes
Puntos: 1
Para que comprendáis mejor por qué tengo problemas con lo anterior, con este ejemplo se verá más claro de los problemas que me está dando:

Supongamos que tenemos un div:
Código:
<div id="miDiv">Hola que tal</div>

y nuestra función de ajax cambia respecto la que puse quedando como sigue:

Código:
function ajax(){
	var obj = Tajax();
	obj.open('GET','pagina.php',true);
    	obj.onreadystatechange = function Response(){
    		if(obj.readyState==4)
                        document.getElementById('miDiv').innerHTML += '. Bien.';
    	};
	obj.send(null);
}
Cuando hagamos la ejecución del script, tras la respuesta en firefox, en nuestro div quedará: Hola que tal. Bien.
Mientras que en iE quedará: Hola que tal. Bien. Bien.

Esto me trae consecuencias inesperadas de este tipo en scripts mas complicados. Espero que os ayude a comprender lo que me pasa y me expongáis vuestras ideas.
Un saludo y gracias.
  #3 (permalink)  
Antiguo 30/06/2006, 21:11
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading.............


prueba asi

Código PHP:
obj.onreadystatechange = function()
            {
            if(
obj.readyState==4)
                         {
                        
document.getElementById('miDiv').innerHTML += '. Bien.';
                         }
        } 

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 06:30.