En mi aplicación cuando el usuario solicita un informe, se realiza una llamada jquery AJAX (utilizando .load()
) a un archivo que realiza un gran número de crujidos y solicitudes mySQL. en general, toma de 5 a 6 segundos cargar y .ajaxStart()
y .ajaxStop()
se utilizan para mostrar un gif de carga durante la carga.La solicitud AJAX cancelada ralentiza la navegación subsiguiente
El problema:
Si un usuario hace clic en el botón 'Generar informe' y luego cambia de opinión e intenta desplazarse a otra página de la aplicación se bloquea, y no vaya a la nueva página para 5-6 segundos. A partir de la eliminación del gif de carga, puedo observar que .ajaxStop()
se dispara inmediatamente cuando se intenta navegar a una página nueva, pero parece que la solicitud de ajax finaliza antes de que el navegador cargue la página siguiente.
¿Es este comportamiento normal? ¿Alguna sugerencia sobre cómo arreglar/reestructurar esto?
¡Sólo pensé en comentar y decirte que no estás solo! Estoy teniendo este problema exacto. Desde el inspector de Chrome y Firebug, el navegador ha cancelado las solicitudes de red pendientes realizadas con AJAX y solo tiene la 'nueva' solicitud para la siguiente página como 'pendiente'. Sin embargo, todavía parece colgar durante unos buenos 5-10 segundos antes de que realmente decida irse. –
Lo mismo aquí: el navegador siempre se retrasa hasta que se completa la solicitud ajax existente. Aunque la respuesta ya no es necesaria. – CoreyOConnor
¿Está utilizando alguna biblioteca que agregue credenciales de OpenID a través de una solicitud entre dominios? – CoreyOConnor