Завершить разговор в Seam, когда пользователь покидает страницу - PullRequest
3 голосов
/ 29 сентября 2011

Есть ли какой-нибудь способ завершить разговор в Seam 2, когда пользователь покидает страницу?Я знаю, что могу, конечно, завершить разговор в правилах навигации (см. этот пост ), но я хочу завершить разговор, когда пользователь вводит URL-адрес в адресной строке браузера.

Может ли это быть достигнуто с помощью Javascript (например, с помощью onbeforeunload)?Но как остановить разговор через javascript?

1 Ответ

3 голосов
/ 30 сентября 2011

Я хочу завершить разговор, когда пользователь вводит URL-адрес в адресной строке браузера.

Может ли это быть достигнуто с помощью Javascript (например, с помощью onbeforeunload)?Но как остановить разговор через javascript?

Вы можете использовать JavaScript для реализации события onbeforeunload и использовать AJAX, чтобы сообщить пользователю, выходящему на сайт, и завершить все ваши разговоры.Тем не менее, я не рекомендую вам это решение, потому что вы не можете полагаться на событие, происходящее в браузере, Javascript не является хорошим вариантом, так как вы можете отключить его на стороне клиента (не только это, но браузер может дать сбой, сетьсоединение может оборваться и т. д.)

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

Настройка периода ожидания разговора может быть выполнена с помощью следующего в components.xml:

<core:manager conversation-timeout="700000" />

Обратите внимание, что тайм-аут разговора влияет только на background разговоров, foreground разговор будет только по истечении времени ожидания сеанса, что соответствует вашим требованиям.

Более подробную информацию об истечении времени разговора можно найти в этой статье .

...