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

llama 2 veces en firefox y 1 en explorer

Estas en el tema de llama 2 veces en firefox y 1 en explorer en el foro de Frameworks JS en Foros del Web. Hola a todos, tengo un código muy simple en Ajax, que lo único que hace es mostrar el readyState en cada momento, y cuando llegue ...
  #1 (permalink)  
Antiguo 19/08/2010, 05:45
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 13 años, 8 meses
Puntos: 0
Pregunta llama 2 veces en firefox y 1 en explorer

Hola a todos, tengo un código muy simple en Ajax, que lo único que hace es mostrar el readyState en cada momento, y cuando llegue a 4 muestra un texto de un txt. Se hace en ventanas alert. Y lo hace todo correctamente, lo raro es que en Firefox muestra el readyState=1 dos veces, cuando el readyState=2, vuelve a abrir otro alert con el valor de readyState=1. Es decir es como si volviera a llamar a la función, en cambio en IE y en Chrome lo hace correctamente.
He mirado por ahí pero el código parece correcto. Se lo paso, como verán es muy simple. Muchas gracias por sus ideas.

<script type="text/javascript">

function descarga()
{
// 1-INSTANCIA DEL OBJETO XMLHttpRequest
if(window.XMLHttpRequest)
{
ObjetoXMLHttpRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
ObjetoXMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

// 2-FUNCIÓN DE RESPUESTA
ObjetoXMLHttpRequest.onreadystatechange = mostrar;

alert("readyState="+ ObjetoXMLHttpRequest.readyState);

// 3-REALIZAR LA PETICIÓN HTTP
ObjetoXMLHttpRequest.open('GET', 'texto.txt', true);

//4-EJECUTAR LA FUNCIÓN DE RESPUESTA
ObjetoXMLHttpRequest.send(null);
}
function mostrar()
{
if(ObjetoXMLHttpRequest.readyState <= 3)
{
alert("readyState="+ObjetoXMLHttpRequest.readyStat e);
}
if(ObjetoXMLHttpRequest.readyState == 4 && ObjetoXMLHttpRequest.status == 200)
{//Cuando llegue a 4 se muestra el texto
alert(ObjetoXMLHttpRequest.responseText);
}
}
</script>
</head>
<body>
<input type="button" onclick="descarga()" value="Empezar"/>
</body>
</html>
  #2 (permalink)  
Antiguo 20/08/2010, 03:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: llama 2 veces en firefox y 1 en explorer

Hola:

Yo diría que no te preocupases... me parece que si usas oro sistema de mostrar los cambios no encontrarías problemas...

Es que las ventanas modales detienen el flujo del programa que se esté usando hasta su cierre, así que posiblemente, simplemente al programar el evento readyState simplemente no se haya actuializado el atributo con el mismo nombre.

Por ejemplo, puedes probarlo con una capa... tal vez te interese esto: Destripando objetos Ajax

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: ajax, explorer, firefox, internet, readystate
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 15:20.