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

Problema petición síncrona en Firefox

Estas en el tema de Problema petición síncrona en Firefox en el foro de Frameworks JS en Foros del Web. Buenas! Tengo un problema en realizar la siguiente petición síncrona en firefox: var http_request = false; function llenar_poblaciones(provincia) { http_request = false; document.getElementById("cargando").style.display = "block"; ...
  #1 (permalink)  
Antiguo 24/10/2008, 07:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 0
Problema petición síncrona en Firefox

Buenas!

Tengo un problema en realizar la siguiente petición síncrona en firefox:


var http_request = false;
function llenar_poblaciones(provincia) {
http_request = false;
document.getElementById("cargando").style.display = "block";
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}


if (!http_request) {
alert('Su navegador no es compatible con algunas funciones de este formulario');
return false;
}

http_request.onreadystatechange = rellenar_poblaciones;
http_request.open('GET', '/backoffice/includes/provincia_poblacion_cp.php?provincia=' + provincia, false);
http_request.send(null);

function rellenar_poblaciones(){
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var respuesta = eval(http_request.responseText);
//vuelco las poblaciones de la provincia seleccionada
var poblaciones = eval("poblacion");
//var poblaciones_valor = eval("poblaciones_value");
lista_poblaciones=document.forms['nueva-oferta']['poblacion'];
lista_poblaciones.options.length = 1; //vuido els municipis
//lista_poblaciones.options[0] = new Option ("Indiferente","Indiferente");
//excepto la primera opcion --selecciona...
for(i=1; i-1 < poblaciones.length; i++){
lista_poblaciones.options[i] = new Option (poblaciones[i-1][0],poblaciones[i-1][0]);
}
lista_poblaciones.disabled=false;
document.getElementById("cargando").style.display = "none";
} else {
alert('Hubo problemas con la petición.');
}
}
}
}

En internet explorer no tengo ningún problema, cuando recibe la respuesta de la url '/backoffice/includes/provincia_poblacion_cp.php?provincia=....' me ejecuta la función 'rellenar_poblaciones()', pero en firefox me es imposible.
Si hago la misma funcion ajax cambiando a asíncrona, no tengo ningún problema, ni en IE ni en Firefox.

Cualquier sugerencia será bien recibida.

Gracias!!
  #2 (permalink)  
Antiguo 24/10/2008, 09:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema petición síncrona en Firefox

No se si tenga mucho que ver pero mueve tus asignaciones de esta forma:
Código javascript:
Ver original
  1. http_request.open('GET', '/backoffice/includes/provincia_poblacion_cp.php?provincia=' + provincia, false);
  2. http_request.onreadystatechange = rellenar_poblaciones;
  3. http_request.send(null);

Saludos.
  #3 (permalink)  
Antiguo 24/10/2008, 10:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema petición síncrona en Firefox

Hola,

Ante todo, muy agradecido por tu respuesta.

Sigue sin funcionar en firefox y sigue funcionando en IE.

Si tienes cualquier otra idea será bienvenida, a mi se me han agotado...

Un saludo!
  #4 (permalink)  
Antiguo 24/10/2008, 11:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema petición síncrona en Firefox

Te recomendaria instalaras la herramienta Firebug para que puedas detectar el error más en concreto en el caso de Firefox.

Saludos.
  #5 (permalink)  
Antiguo 27/10/2008, 14:12
 
Fecha de Ingreso: septiembre-2008
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema petición síncrona en Firefox

Hola,

He instalado el Firebug pero no me sale ningún error.

Te explico una cosa que me ha pasado, a ver si te viene alguna idea.

Si cambio ésta línea:
http_request.open('GET', '/backoffice/includes/provincia_poblacion_cp.php?provincia=' + provincia, false);
Por esta:
http_request.open('GET', '/backoffice/includes/provincia_poblacion_cp.php?provincia=' + provincia, true);

me sale error informando que poblacion no esta definido. En IE me sale solamente la primera vez que se carga la página, si la refresco no me sale el error y el script se ejecuta correctamente. En Firefox me sale siempre el error y el script nunca se ejecuta.

Gracias!
  #6 (permalink)  
Antiguo 27/10/2008, 14:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Problema petición síncrona en Firefox

El error se podría deber a que en la misma página ejecuto varias funciones AJAX a la vez?
Si le pongo timeOut para la ejecución de cada función, no tengo ningún problema, siempre y cuando las peticiones sean asíncronas. Si es síncrona, con firefox sigo teniendo el mismo problema.
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 18:02.