Foros del Web » Programando para Internet » Javascript »

La ejecución de un script con ajax se bloquea en IE

Estas en el tema de La ejecución de un script con ajax se bloquea en IE en el foro de Javascript en Foros del Web. Tan rícamente ensayando con Firefox y cuando se ejecuta con IE se bloquea, teniendo que reiniciar este navegador. Se trata de un script que se ...
  #1 (permalink)  
Antiguo 03/02/2012, 05:33
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta La ejecución de un script con ajax se bloquea en IE

Tan rícamente ensayando con Firefox y cuando se ejecuta con IE se bloquea, teniendo que reiniciar este navegador.

Se trata de un script que se dispara con el evento onchange de un select que contiene las provincias de España:

onchange="CargaLocalidades(this.value,'selectLocal idad');"

La función trata de cargar en el siguente select los municipios según sea la selección de la provincia en el select inicial.

El 2ª parámetro es el id del select donde se cargarán las localidades de la provincia elegida

Los datos de los municipios los extraigo de la respuesta que entrega la función ajax, a la que se llama con otra función copiada de estos mismos foros:

Código PHP:
function XMLHttp(){
        var 
Object;
        if (
typeof XMLHttpRequest == "undefined" ) {
            if(
navigator.userAgent.indexOf("MSIE 5") >= 0) { 
                
Object= new ActiveXObject("Microsoft.XMLHTTP");
            } else { 
                
Object=new ActiveXObject("Msxml2.XMLHTTP");
            }
        } else { 
            
Object=new XMLHttpRequest();
        }
        return 
Object;
    }
    
    function 
CargaLocalidades(valor,obj){
        var 
ajax2 = XMLHttp();
        var 
provincia = valor;
        var 
oCntrl = document.getElementById(obj);
        
oCntrl.options.length = 0;
        var 
selOpcion = new Option("BUSCANDO...", "0");
        var 
iPos = oCntrl.options.length;
        
oCntrl.options[iPos] = selOpcion;
        
ajax2.open("GET","ajax/charge_loc.php?prov=" + provincia, true);
        
ajax2.onreadystatechange=function(){
            if(
ajax2.readyState==4) {
                var 
respuesta=ajax2.responseText;
                var 
pos = respuesta.indexOf("#");
                var 
ind = respuesta.indexOf("|");
                var 
i = 1;
                
oCntrl.options.length = 0;
                var 
selOpcion = new Option("<Seleccione Localidad>", "0");
                var 
iPos = oCntrl.options.length;
                
oCntrl.options[iPos] = selOpcion;
                while(
pos!=-1){
                    var 
municipio;
                    
municipio = respuesta.substring(0,pos);
                    
indice = respuesta.substring(pos+1,ind);
                    
selOpcion = new Option(municipio.toUpperCase(), indice);
                    
iPos = oCntrl.options.length;
                    
oCntrl.options[iPos] = selOpcion;
                    
i++;
                    var 
auxiliar1 = respuesta.substring(ind+1);
                    
respuesta = auxiliar1;
                    
pos = respuesta.indexOf("#");
                    
ind = respuesta.indexOf("|");
                }
            }
        }
        
ajax2.send(null);
    } 
La función ajax, para distinguir el identificador del nombre del municipio, la devuelve del siguente modo:

.....NOMBRE_MUNICIPIO#ID_MUNICIPIO|......

Es decir, usando los carácteres especiales # y | para separar un campo de otro.

Alguien puede arrojarme algo de luz a lo que está pasando.

Gracias
  #2 (permalink)  
Antiguo 03/02/2012, 06:40
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 21 años, 4 meses
Puntos: 79
Respuesta: La ejecución de un script con ajax se bloquea en IE

si es por el cache

http://www.codemiles.com/ajax/soluti...orer-t602.html


salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #3 (permalink)  
Antiguo 05/02/2012, 12:09
 
Fecha de Ingreso: febrero-2012
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: La ejecución de un script con ajax se bloquea en IE

He intentado seguir los consejos de esa página.

Concretamente he añadido los header a la página php que entrega los resultados, pero sigue todo igual:

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

El caso es que en Firefox funciona bien

Etiquetas: ajax
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 19:15.