Во-первых, для того, чтобы это было эффективным, вы должны убедиться, что пользователи вышли из системы на сервере в конце этого простоя. В противном случае, ничего, что вы делаете на стороне клиента, не эффективно. Если вы отправите их на страницу входа, они могут просто нажать кнопку «Назад».
Во-вторых, общепринятый способ сделать это - использовать тег meta meta. Добавление этого на страницу:
<meta http-equiv="refresh" content="900;url=http://example.com/login"/>
отправит их на страницу входа через 15 минут (900 секунд). Это отправит их туда, даже если они что-то делают на странице. Он не обнаруживает активность. Он просто знает, как долго страница была в браузере. Обычно этого достаточно, потому что людям не требуется 15 минут, чтобы заполнить страницу (думаю, stackoverflow.com является заметным исключением).
Если вам действительно нужно обнаружить активность на странице, то я думаю, что ваш первый инстинкт верен. Вам нужно будет добавить обработчики событий для нескольких вещей. Если вы беспокоитесь о том, чтобы возиться с другими сценариями для проверки или других вещей, вы должны смотреть на добавление обработчиков событий программно, а не встроенно. То есть вместо использования
<input type="text" onClick="doSomething;">
Доступ к объектной модели напрямую с помощью
Mozilla way: element.addEventListener('click' ...)
Microsoft way: element.attachEvent('onclick' ...)
и затем убедитесь, что вы передаете события после их получения, чтобы существующий код все еще делал то, что (проверка?) Он должен делать.
http://www.quirksmode.org/js/introevents.html неплохо написал, как это сделать.
-
BMB