Cómo determinar si un usuario está en línea o fuera de línea asp
Generalmente hay dos ideas.
Una es la actualización instantánea, es decir, el primer plano informa al fondo que todavía está en línea cada pocos segundos. Al escribir el tiempo de actualización en la base de datos del backend o en el objeto de la aplicación, el administrador del backend puede leer el tiempo en línea del usuario. Si el usuario no se actualiza después del tiempo especificado, se puede determinar que está desconectado. Este método es actualmente el método de juicio más utilizado. La desventaja es que ocupará una cierta cantidad de recursos del sistema. Si el número de usuarios en línea es demasiado grande, la presión de carga sobre el servidor será relativamente grande.
El segundo es el estilo periodístico de idas y venidas. Es decir, si la persona en línea informa que está aquí y la persona fuera de línea informa que se ha ido, no es necesario informar periódicamente al backend si está en línea o no, siempre y cuando no informe que está fuera de línea. , todavía se le considera en línea. Técnicamente, se basa en los eventos de carga y descarga del DOM y crea una cookie en el cliente. En el evento de carga, el número de páginas web abiertas se escribe en la cookie, como cookie("OpenPageCount")++. Solo cuando cookie ("OpenPageCount") ==1 solo informa al fondo que está en línea. Si es mayor que 1, solo significa que se han abierto varias páginas más. No es necesario enviar solicitudes ajax al fondo. Con frecuencia, en el evento de descarga, reduzca la cookie en 1, como cookie("OpenPageCount")--, la solicitud ajax no se envía a segundo plano hasta el estado 0 fuera de línea. La precisión de este método también es buena y no consume muchos recursos del servidor. El trabajo principal se realiza en el cliente. La desventaja es que la compatibilidad no es lo suficientemente buena con los navegadores convencionales, como IE8+ y FF. Las pruebas que he probado tienen buen soporte, pero algunos navegadores imitadores ampliamente utilizados no admiten bien los eventos DOM, como 360, Aoyou, TT, Sogou, etc.
Puntos técnicos clave relevantes:
Backend: base de datos, objeto de aplicación, intervalo de tiempo
Front-end: javascript DOM Event & Cookie & setInterval