Экономия времени при входе пользователя в систему

StackOverflow https://stackoverflow.com/questions/203054

Вопрос

В приложении, которое я разрабатываю, я должен сохранять время, в течение которого некоторые конкретные пользователи остаются зарегистрированными в приложении, к сожалению, в веб-приложениях есть несколько способов, которыми пользователь может выйти из системы.

  1. Пользователь нажимает кнопку "Выйти".
  2. Срок действия сеанса пользователя истекает.
  3. Пользователь закрывает окно.
  4. Пользователь вводит в адресную строку URL другого сайта.

Первый из них довольно прост, потому что приложение получает контроль над процессом выхода из системы.Но в других случаях это становится сложнее.

Что бы вы сделали, чтобы решить эту проблему?

Это было полезно?

Решение

При каждом просмотре страницы обновляйте свой счет.Если они выйдут из системы, значит, у вас есть точная оценка.Если они удаляются или любым другим способом, то максимум, что вы теряете, - это время, в течение которого они находились на одной странице.

Если бы это было так действительно, действительно важно иметь точную меру, тогда, возможно, "сердцебиение" AJAX будет измеряться каждую минуту, но это, скорее всего, излишество.

Другие советы

Что ж, для # 3 и # 4 вы можете прикрепить что-нибудь к событию window.onunload, которое дает вам время на вычисления, но будьте осторожны, чтобы ваш код работал достаточно быстро, чтобы страница не выгружалась полностью до отправки вашего AJAX-запроса.

Что касается # 2, то "сердцебиение", предложенное nickf, вероятно, является лучшим решением в этом случае.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top