W przepełnieniu stosu na stronie profilu wyświetlana jest właściwość "ostatnio widziana". Wydaje się, że nie jest ono aktualizowane na każdym widoku strony (oczywiście ze względu na wydajność). Jak zaimplementowałbyś to w aplikacji internetowej o dużym natężeniu ruchu? Czy zaktualizowałbyś go tylko na niektórych stronach? Lub buforować ostatni raz, kiedy zalogowałeś się na ostatnią wizytę użytkownika i odczekać określoną ilość czasu przed aktualizacją bazy danych? Czy coś zupełnie innego?Jak zaimplementować funkcję "ostatnio widzianą" dla użytkowników?
Odpowiedz
Prawdopodobnie okaże się, że pomocna jest "What strategy would you use for tracking user recent activity?". Problemy są podobne.
Posłużę się SESJĄ. I ustaw ją tylko na pierwszą wizytę w sesji. Także resetowanie go co godzinę, jeśli ludzie opuszczają przeglądarkę. W php coś takiego:
if(!isset(!_SESSION['lastSeen'])){
$_SESSION['lastSeen'] = time();
updateLastSeenInDatabaseOrSomething();
}
else{
if($_SESSION['lastSeen'] < time() + 2 * 60 * 60){ //2 hours
$_SESSION['lastSeen'] = time();
updateLastSeenInDatabaseOrSomething();
}
}
Coś takiego, ale potem z OO i nie robi tego samego dwa razy.
Na stronie o dużym natężeniu ruchu, takiej jak przepełnienie stosu, zaktualizowałbym zmienną "ostatnio widzianą" tylko wtedy, gdy użytkownik faktycznie ma coś, co robi. Czai się i czytając pytania i odpowiedzi nie powinno się liczyć, jako że użytkownik jest "widziany" przez system. Zadawanie i odpowiadanie na pytania lub głosowanie nad nimi powinno być działaniami, które aktualizują się, gdy użytkownik jest ostatnio widziany.
Nie będę mówił o szczegółach implementacji, ponieważ jest już objęty innymi odpowiedziami (i prawdopodobnie źle to zrozumiałbym).
Rozważ użycie wzoru projektu "Rozkaz" dla tego. Pomoże ci to na dwa sposoby - odpowiedz na pytanie i zastosuj funkcję "cofnij/ponów". Powinieneś utrzymywać listę obiektów poleceń zaprojektowanych według tego wzoru.
- 1. Jak zaimplementować funkcję cofania?
- 2. Jak poprawnie zaimplementować funkcję ToString dla struktury?
- 3. NSArray. Jak mogę zaimplementować funkcję Map?
- 4. Jak mogę zaimplementować funkcję gumki w SVG?
- 5. Jak zaimplementować tę funkcję w Haskell
- 6. Jak zaimplementować funkcję sortowania w widoku siatki?
- 7. Jak zaimplementować funkcję GROWTH w JavaScript
- 8. Jak zaimplementować funkcję "private/restricted" w C?
- 9. Jak zaimplementować funkcję make_unique w C++ 11?
- 10. jak zaimplementować funkcję python `zip` w golangu?
- 11. Jak zaimplementować funkcję ReLU w Numpy
- 12. Jak zrobić wodę widzianą w Sea Stars?
- 13. Jak zaimplementować uwierzytelnianie dla interfejsu API REST?
- 14. Jak mogę zaimplementować funkcję wyskakujących okien czatów w Gmailu?
- 15. Jak zaimplementować funkcję "ukończ później" z niezerowymi polami?
- 16. Jak mogę zaimplementować funkcję pojedynczego logowania w Check_MK?
- 17. Spring + Thymeleaf - jak zaimplementować paginację dla listy
- 18. Jak zadeklarować i zaimplementować funkcję const i inline member?
- 19. Jak zaimplementować funkcję cofania/ponawiania w Eclipse FormEditor?
- 20. jak zaimplementować funkcję wyszukiwania za pomocą Javascript lub jquery
- 21. Jak zaimplementować funkcję przepełnienia stosu "czy jesteś człowiekiem"?
- 22. Jak prawidłowo zaimplementować funkcję "minimize to tray" w Qt?
- 23. Podstawowe dane ios jak zaimplementować funkcję transakcji sql?
- 24. Jak zaimplementować funkcję "cofnij" za pomocą Pythona/Django
- 25. Jak mogę zaimplementować funkcję "Odłóż" Apple w ich aplikacji Zegar?
- 26. Jak mogę zaimplementować program skierowań dla użytkowników aplikacji na rynku Android?
- 27. regex dla nazw użytkowników
- 28. iPhone: Jak zaimplementować funkcję "przenieś i skaluj" dla obrazu pobranego z biblioteki zdjęć
- 29. Jak wyświetlić ostatnio utworzony plik?
- 30. Jak pobrać ostatnio zmodyfikowany plik