pagina mostrar mientras funcion ejemplos ejemplo ejecutar despues crear con cargar carga asincrona archivo antes javascript web page-lifecycle

javascript - funcion - mostrar loading mientras carga pagina jquery



Cómo detectar si el navegador está en proceso de cargar una nueva página (2)

Tengo una aplicación web con un código de "seguridad" que causa una recarga de la página si la conexión del servidor (Socket.IO) se silencia durante más de 5 segundos (generalmente problemas del cortafuegos del sitio del cliente / proxy interrumpido).

La conexión de Socket.IO se detiene tan pronto como una nueva página comienza a cargarse, pero el código de seguridad no lo ve. Navegar a una página lenta hace que el código de seguridad se dispare y lo lleve de vuelta a la página anterior.

Necesito poder decir (justo antes de que este código cause una recarga) si el navegador está actualmente esperando que se cargue una nueva página (lenta).

¿Qué enfoques hay para hacer esto, aparte de poner un evento jQuery click en cada enlace (que no captaría la navegación a través de la barra de direcciones)?

Gracias,

Chris.


Mi recomendación: arregle su código para que no vuelva a cargar la página cuando el socket se desconecte. Problema resuelto.

Editar
Supongo que simplemente podría establecer una variable como isReloading cuando la página se recarga. onbeforeunload supervisar antes de la onbeforeunload también, y verificar qué ocurre primero: desconectar o descargar el evento. Si la desconexión ocurre primero, se desconecta. Dispare la bandera isReloading y vuelva a cargar. En el control antes de la descarga, verifique si se configuró la bandera. Invierta el concepto de verificar si se está cargando una página lenta: compruebe si está recargando.


La window.onbeforeunload monitoreo. window.onbeforeunload haría el truco. Incendios justo después de que el usuario comience a navegar.

Intente escribir esto en la consola de Chrome en cualquier página y haga clic en cualquier enlace:

window.onbeforeunload = function () { console.log("oh noes"); }