Rails 3: Завершение сеанса пользователя, когда пользователь закрывает свой браузер или страницу? - PullRequest
0 голосов
/ 01 июня 2011

Есть ли способ завершить сеанс пользователя, когда пользователь закрывает свой браузер или страницу, на которой он находился?

ps Я использую authlogic в качестве подключаемого модуля аутентификации.

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

Спасибо

1 Ответ

0 голосов
/ 01 июня 2011

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

Тем не менее, если вы настроены на это взаимодействие с пользователем, я бы порекомендовал запрос Ajax, который пингует ваш сервер, чтобы уведомить ваше приложение о том, что пользователь все еще активен и блокировку таблицы не следует снимать. Например, установите интервал в две секунды. Если вы не получили новый пинг в течение 3-4 секунд, снимите блокировку.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...