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: 12 años, 2 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=" provinciatrue);
        
ajax2.onreadystatechange=function(){
            if(
ajax2.readyState==4) {
                var 
respuesta=ajax2.responseText;
                var 
pos respuesta.indexOf("#");
                var 
ind respuesta.indexOf("|");
                var 
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: 19 años
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: 12 años, 2 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 05:10.