Используя функцию тайм-аута javascript, вы должны убедиться, что, если пользователь делает какие-либо вызовы AJAX, ваша функция должна быть сброшена, так как она должна рассматриваться как активность пользователя.
Если при использовании принудительной отправки сервера с помощью веб-сокетов выможет быть не в состоянии ориентироваться на пользователей с не очень последними браузерами.Возможно, вам придется использовать некоторые сигнальные структуры и даже изменить свой стек бэкэнда.(Я могу думать о socket.io & SignalR на данный момент)
Оба подхода не будут изящно ухудшаться.Итак, опция IMO javascript звучит лучше, поскольку она может быть нацелена на более широкую аудиторию, и это потребует от вас рассмотрения некоторых крайних сценариев.Если бы у меня был выбор, я бы вообще не реализовывал эту функцию.Но вряд ли так будет.
ОБНОВЛЕНИЕ: Вот еще один подход, о котором я мог подумать.
Каждый раз, когда страница обслуживается, я отправляю Cookie, который может бытьдоступ на стороне клиента, который будет содержать время UTC, в течение которого сеанс будет превышен.В моем коде я бы поместил setInterval, который будет считывать значение и сравнивать местное время с UTC, а если он закроется, отобразить всплывающее окно, сообщающее, что время ожидания наступит через X секунд и т. Д.
Это снова неt грациозно ухудшается и зависит от времени клиентского компьютера.Так что, если это не так, эта функция не будет работать надежно.