Pregunta realmente simple. Yo tratando de probar un servicio web reparador que estoy desarrollando, y tienen esta simple llamada AJAX (jQuery):Llamada ajax simple parece estar bloqueando
<script type="text/javascript">
$(document).ready(function() {
var url = '/index.php/gettest/reallyLongRequest';
$.ajax({
url: url,
dataType:'text',
success:function(data) { $('#result').html(data);},
error:function(xhr,err,e) { alert ("Error: " + err);}
});
});
</script>
Esto se ejecuta cuando se carga la página. Mientras se ejecuta, la página está bloqueando; es decir, (puedo ver el reloj de arena junto al puntero del mouse) no se pueden manejar otras acciones del usuario. (Por cierto, esta solicitud de obtención en particular, intencionalmente, tarda mucho tiempo en regresar).
¿Por qué es esto? A (asincrónico) JAX ¿verdad? Obviamente estoy cometiendo un error de principiante. Alguna idea, por favor?
Cuando intento esto utilizando javascript simple (sin biblioteca) funciona como se esperaba. ¿Tiene esto algo que ver con el manejo de Jquery del xhr onreadystatechange?
Gracias por mirar.
EDITAR: varias personas han sugerido configurar async: true, que, como ocurre, es el valor predeterminado en jquery, y como tal no tiene ningún efecto.
EDITAR: Como he mencionado anteriormente, si uso javascript simple y lo comienzo con un temporizador, por ejemplo, window.setInterval(function() { startLongPoll(); }, 5000)
Se actualiza como se espera, sin parecer bloqueado. Ideas, alguien?
no tengo ni idea de si esto está relacionado, pero ¿ha intentado en un navegador diferente? –
Sucede en todos los navegadores. –
Parece que mi declaración anterior no era cierta; luego de una inspección adicional solo ocurre en google chrome. ¿Algunas ideas? –