Автоматический тайм-аут использования веб-клиента

Одна из проблем, с которыми я столкнулся при выполнении сложных задач в браузере, - это автоматические тайм-ауты.

В настоящее время у нашего сайта скользящий срок действия 30 минут. Обычно это не проблема, потому что мы используем asp.net, и большую часть времени пользователи обновляют одно или два поля, а затем отправляют форму. Это, очевидно, сохраняет сеанс активным. Я боролся с тем, как справиться с этим со значительно более сложными формами / взаимодействием с пользователем, где мало или совсем нет циклов на сервер.

Теперь пользователи могут просматривать отчеты, набирать электронные письма и т. д. На нашем сайте, и я пытаюсь сохранить их сеанс активным, когда они фактически используют браузер, но они не отправляют информацию обратно. Я бы обошелся без скользящего истечения срока действия, но это требование, поэтому я придерживаюсь его. Большинство наших пользователей находятся за пределами организации, поэтому я не могу использовать какую-либо форму SSO.

Есть ли у кого-нибудь изящное решение (я даже выберу уродливое, если оно сработает), или мне не повезло?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
579
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Мы недавно прошли через это в моей организации. Хотя это не лучшее решение, и попадание в нужный сеанс в нескольких окнах браузера является грубым, мы поместили таймер обратного отсчета на нашу страницу, включили кнопку, которая просто возвращалась и нажимала на сервер для перезапуска сеанса, а также предоставила пользователю со всплывающим окном JavaScript (любимая часть решения пользователя) с сообщением о том, что сеанс был, скажем, через пять минут после тайм-аута, и нажатием кнопки «ОК» для перезапуска. Затем кнопка нажимала на сервер, чтобы перезапустить сеанс, перезапустить таймер на базовой странице, закрыть всплывающее окно, и базовая страница вообще не нуждалась в обновлении.

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

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

Один из ответов - также установить cookie, срок действия которого истекает через день, который сообщит системе, что она все еще запоминает пользователя. Это, среди прочего, и делает eBay.

Эриксон на правильном пути.

В областях сайта, которые подвержены тайм-ауту сеанса из-за «сложных форм / взаимодействия с пользователем, где мало или вообще нет циклических обращений к серверу», вы можете установить контроль активности, чтобы продолжать пинговать сервер, таким образом, сохраняя сеанс. живой.

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

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