En el desbordamiento de pila, la página de perfil muestra una propiedad "última vez que se ve". Esto no parece actualizarse en cada vista de página (por razones de rendimiento, obviamente). ¿Cómo lo implementarías en una aplicación web de tráfico pesado? ¿Lo actualizarías solo en ciertas páginas? ¿O almacenar en caché la última vez que registró la última visita del usuario y esperar un tiempo específico antes de actualizar la base de datos? ¿O algo completamente diferente?¿Cómo implementaría una característica de "última vez que se viera" para los usuarios?
Respuesta
Probablemente encuentre "What strategy would you use for tracking user recent activity?" útil. Los problemas son similares.
Me gustaría utilizar una SESIÓN. Y solo configúralo como la primera visita de la sesión. También lo restablece cada hora más o menos si la gente deja el navegador abierto. En php algo como esto:
if(!isset(!_SESSION['lastSeen'])){
$_SESSION['lastSeen'] = time();
updateLastSeenInDatabaseOrSomething();
}
else{
if($_SESSION['lastSeen'] < time() + 2 * 60 * 60){ //2 hours
$_SESSION['lastSeen'] = time();
updateLastSeenInDatabaseOrSomething();
}
}
algo así, pero luego con OO y no hacer lo mismo dos veces.
En un sitio de mucho tráfico como Stack Overflow, solo actualizaría la variable "last seen" cuando un usuario realmente hace algo. Al acecho y leer preguntas y respuestas no debe contar como un usuario "visto" por el sistema. Hacer y responder preguntas o votarlas debe ser acciones que se actualizan cuando el usuario fue visto por última vez.
No hablaré sobre los detalles de implementación porque eso ya está cubierto por otras respuestas (y probablemente me equivocaría).
Considere utilizar el patrón de diseño "Comando" para esto. Le ayudará de dos maneras: responda la pregunta en cuestión y también implemente una función de "deshacer/rehacer". Debe mantener una lista de objetos de comando diseñados según ese patrón.
- 1. ¿Cómo se encuentra la última vez que se accedió a una base de datos?
- 2. ¿Cómo encuentro la última vez que se actualizó una base de datos PostgreSQL?
- 3. ¿Cómo puedo evitar que los usuarios voten más de una vez en 1 hora?
- 4. ¿Cómo puedo evitar que los usuarios voten más de una vez?
- 5. La última vez que se ejecutó un procedimiento almacenado
- 6. svn: ¿Cómo determino la última vez que se modificó una determinada línea?
- 7. Cómo determinar, al iniciar, si la aplicación se bloqueó la última vez que se cerró?
- 8. ¿Cómo implementaría los diálogos flotantes de stackoverflow?
- 9. ¿Cómo implementaría una "tabla" muy amplia?
- 10. ¿Cuál es la mejor manera de implementar una función de "última vez que se ve" en una aplicación web django?
- 11. Estrategias para autenticar usuarios una sola vez sin identificador precompartido
- 12. Dentro de un ciclo while, ¿se garantiza que la última declaración separada por comas se ejecutará la última vez?
- 13. ¿Cómo se puede implementar una característica jQuery sin tener usuarios de petición de IE con una advertencia de Active X?
- 14. ¿Cómo lograr que los usuarios se basen en el rol?
- 15. Obteniendo los usuarios que compartieron una publicación
- 16. jquery elemento centrado por última vez
- 17. ¿Cómo implementaría una UITableView que detecta deslizamientos horizontales para permitir la paginación?
- 18. ¿Cómo obtengo la hora en que se modificó por última vez un archivo en Python?
- 19. ¿La aplicación de detección se colgó durante la carga/la última vez que se ejecutó?
- 20. Cómo saber cuándo se actualizó una tabla de Oracle la última vez
- 21. Determine la última vez que se recicló un grupo de aplicaciones
- 22. ¿Cómo puedo determinar cuándo se modificó por última vez una tabla InnoDB?
- 23. Variable en Bash Script que mantiene su valor desde la última vez que se ejecuta
- 24. ¿Cómo puedo verificar la última vez que se ejecutaron las estadísticas en Oracle sin utilizar OEM?
- 25. ¿Los archivos .dll se cargan una vez para cada programa o una vez para todos los programas?
- 26. Python filtrar una lista para dejar sólo los objetos que se producen una vez
- 27. Android check cuando la tabla se actualizó por última vez
- 28. Comprobar cuándo se modificó por última vez la contraseña
- 29. ¿Cómo puedo hacer que mi página HTML se ajuste automáticamente para los usuarios de dispositivos móviles?
- 30. ¿Cómo se configura SOLR para que los usuarios puedan hacer la búsqueda de prefijos por defecto?