Я вижу здесь две отдельные адресуемые проблемы, поэтому я буду обсуждать их по отдельности.
Логин возвращен как результат AJAX :
Вместо того, чтобы просто вернуться на экран входа в систему, верните сообщение о том, что сеанс истек. Если ваш AJAX получает такое сообщение, он знает, что пользователь должен войти в систему. На этом этапе вы можете сделать что-то вроде
window.location = loginpageurlhere;
Кроме того, вы можете проверить свой ответ AJAX, чтобы увидеть, является ли он ожидаемым ответом или это страница входа в систему. Если это страница входа, используйте предложенное выше предложение.
Отображение диалогового окна, если пользователь слишком долго неактивен :
Для этого вам нужно знать, как долго пользователь неактивен. Вы можете сделать это несколькими способами, один из которых выглядит следующим образом:
- Когда страница загружается, инициализируйте переменную для использования в качестве обратного отсчета.
- Установите таймер, который будет уменьшать счетчик каждый раз, когда у него заканчивается время, а затем перезапускается.
- Если счетчик когда-либо достигнет нуля, отобразите диалоговое окно и снова войдите в систему.
- Каждый раз, когда происходит действительное действие (сообщение AJAX или что-то еще, что у вас может быть), сбрасывайте счетчик.
Вы можете использовать любой из этих методов, хотя, если вас беспокоит защита данных на автоматическом компьютере, лучше использовать второй метод, поскольку вы можете заблокировать экран и отобразить только диалоговое окно, и это произойдет, пока Пользователь отсутствует, тогда как первый метод не может ничего сделать, пока пользователь фактически не попытается выполнить действие на вашей странице.