Quería saber cuándo se cierra el navegador en el servidor en asp.net 2.0. ¿Cómo detectar en el código?¿Cómo detectar el navegador cerca del servidor en asp.net?
Respuesta
script del lado del cliente:
< body onbeforeunload="window.open('http://www.website.com/browserclosed.aspx','mywindow','width=1,height=1');">
script del lado del servidor (browserclosed.aspx):
// page_load
int userId = Convert.ToInt32(request.session("userId"));
ReportBrowserClosed(userId);
// Do what you want in ReportBrowserclosed() method
Respuesta corta: no puede hacer eso directamente porque http es sin estado. Tal vez puedas usar un poco de agrupamiento de audios AJAX, detección de tiempo de espera de la sesión y otros trucos.
Eche un vistazo a this question para obtener más explicaciones e ideas. Esto está basado en Java, pero las ideas son independientes del idioma.
Lo primero que se le viene a la mente es que engancha el evento de descarga y solo publica de manera asíncrona que el navegador navegó fuera de su sitio (cerró la ventana). Sin embargo, la forma en que HTTP se usa para crear sitios web sin estado hace que esto no sea factible. Simplemente no tiene una forma confiable de rastrear la conectividad del usuario.
Simplemente considere cómo manejaría varias sesiones? Si tengo el mismo sitio abierto en muchas y varias pestañas o ventanas y cierro todos menos uno, ¿cómo dice que todavía estoy conectado? Y por el gusto de hacerlo, di que mi navegador se colgó en algún punto intermedio.
El problema es que podría diseñar algo que pudiera resolver su problema. Sin embargo, nunca va a ser confiable porque HTTP no tiene un mecanismo de control incorporado para la conectividad.
Tengo que responder a esta pregunta, con una pregunta de seguimiento. ¿Por qué necesita saber cuándo se cierra la ventana del navegador?
Si necesita hacer alguna limpieza de recursos hay dos eventos del lado del servidor, facilitados por ASP.NET que puede usar de manera más confiable. Y eso es Session_End
o Application_End
.
La pregunta bastante obvia es ¿por qué lo necesitas? ¿Desea almacenar el tiempo de cierre de sesión o la hora de cierre? Entonces es mejor atrapar el tiempo de espera de la sesión. ¿Quieres redirigir a otra página, entonces es mejor atrapar en el evento de descarga de página de javascript.
- 1. Detectar navegador Cerrar en Asp.net
- 2. ¿Cómo detectar el cierre del navegador?
- 3. Detectar actualización del navegador
- 4. cómo borrar idear sesión en el navegador de cerca?
- 5. ¿Cómo detectar el foco del navegador en dispositivos móviles?
- 6. ¿Cómo detectar un zócalo lateral remoto cerca?
- 7. detectar el tamaño de fuente del navegador
- 8. petición del navegador Falsificación en ASP.net C#
- 9. ¿Puedo detectar el área visible del usuario en el navegador?
- 10. ¿Cómo detectar si el soporte del navegador es flash?
- 11. ASP.net simular el botón Atrás del navegador
- 12. javascript para verificar cuando la ventana del navegador está cerca
- 13. ASP.NET - Invalidar el caché del navegador
- 14. Detectar dentro del navegador Android o WebView
- 15. Detectar solicitudes AJAX en el navegador (lado del cliente)
- 16. Detectar el navegador Chrome en HTML
- 17. ASP.NET/IIS6: ¿Cómo buscar en el mapa mime del servidor?
- 18. en el código del lado del servidor asp.net?
- 19. Detectar llamada ajax, ASP.net
- 20. ASP.NET MVC TempData en cookie del navegador
- 21. ¿Puede detectar JavaScript si el navegador del usuario admite gzip?
- 22. Detectar servidor de desarrollo en asp.net (Visual Studio)
- 23. Detectar la versión exacta del sistema operativo desde el navegador
- 24. Aplicación web multilingüe: ¿cómo puedo detectar el idioma del usuario en ASP.NET?
- 25. ¿Cómo detectar la compatibilidad del navegador para pageShow y pageHide?
- 26. Mismo código en el navegador/servidor
- 27. ASP.Net Descargar archivo en el navegador del cliente
- 28. Chrome - Detectar cuando el navegador sale
- 29. ASP.NET equivalente del lado del servidor incluye
- 30. Detectar desde el navegador si está instalada una aplicación específica
No puedo responder por el PO, pero una razón común de hacer esto es dejar una operación de larga ejecución (consulta, generación de informes, etc.) cuando el usuario abandona y cierra su navegador. – Gabe