Przy użyciu javascript funkcję czasu, trzeba upewnić się, że jeśli użytkownik jest podjęciem AJAX wywołuje czynność należy zresetować jak powinna być traktowana jako aktywność użytkownika.
Jeżeli używając Push serwer używając WebSockets może nie być w stanie kierować użytkowników z nie tak najnowszych przeglądarek. Być może będziesz musiał użyć niektórych frameworków sygnalizacyjnych, a nawet zmienić swój stos backendu. (Mogę myśleć o socket.io & SignalR od teraz)
Oba podejścia nie ulegają zniszczeniu z wdziękiem. Tak więc, opcja IMO javascript brzmi lepiej, ponieważ może być skierowana do szerszej publiczności, a to wymagałoby zastosowania się do niektórych scenariuszy skrajnych przypadków. Gdybym miał wybór, w ogóle nie zaimplementowałem tej funkcji. Ale tak się nie dzieje w ten sposób.
AKTUALIZACJA: Oto inne podejście, jakie mogłem wymyślić.
każdym razem, gdy strona służył dostaje bym wysłał cookie, które mogą być dostępne w po stronie klienta, który będzie zawierać czas UTC, w którym sesja będzie timeout. W moim kodzie umieściłbym setInterval, który odczytałby wartość i porównałby czas lokalny z UTC, a jeśli zamknie, wyświetli okno wyskakujące z informacją, że timeout nastąpi w X sekundach itd.
To znowu nie degraduje z wdziękiem i opiera się na czasie komputera klienta. Tak więc, jeśli jest źle, ta funkcjonalność nie będzie działać niezawodnie.
Czy to jest nawet bezpieczne. Limit czasu sesji po stronie klienta można łatwo ominąć, wstrzykując kod js jak poprzez wtyczkę, która odświeża licznik co (czas wylogowania - 1) –