Tengo algunas llamadas ajax (potencialmente) de larga ejecución que me gustaría cancelar si el usuario navega a otra página. Las siguientes llamadas de código jQuery abortan en todos los objetos XMLHttpRequest pendientes al navegar fuera de la página:El navegador espera que se complete la llamada ajax incluso después de haber llamado al aborto (jQuery)
$.ajaxSetup({
beforeSend: function(xhr) {
$(window).bind('beforeunload', function() {
xhr.abort();
});
}
});
En un caso de prueba, fuerzo una espera de 10 segundos sobre el funcionamiento del lado del servidor que se llama. Usando Firebug, confirmé que el código anterior efectivamente causa que todas las llamadas ajax pendientes se detengan inmediatamente cuando hago clic en cualquier enlace en la página. Sin embargo, el navegador aún espera los 10 segundos completos antes de pasar a la página siguiente. IE parece exhibir el mismo comportamiento. ¿Es este un comportamiento conocido del navegador? ¿Hay algo que pueda hacer para permitir que el usuario salga de la página inmediatamente en esta situación? Gracias por adelantado.
¿Cómo es la llamada Ajax? – epascarello