有没有办法可以控制何时停止向服务器发送心跳?
我的要求是UI在用户输入文本框或将鼠标指针悬停在UI上时不会过期。
当然,当用户在页面上执行某些活动时,我们可以使用一些java脚本来发送一些服务器请求,这最终会使UI过期。
但是我更愿意通过心跳来控制它,如果用户真的远离用户界面,那么在超时后停止发送心跳,但在用户键入的时候继续发送心跳(以其定义的速率)文本框或将鼠标悬停。
处理此问题的最佳方式是什么?
答案 0 :(得分:0)
我知道只要有用户输入,您希望UI处于活动状态。如果用户空闲,则应删除UI并且不会被心跳占用。
您可以通过禁用心跳机制来执行此操作。将参数closeIdleSession
设置为true
即可。
在你的web.xml中写:
<servlet>
...
<init-param>
<param-name>closeIdleSessions</param-name>
<param-value>true</param-value>
</init-param>
如果用户未触发指定超时时间的请求,则会话无效。这样,在会话超时到期后,您的UI将被销毁。会话超时在web.xml中通过
设置<session-config>
<session-timeout>60</session-timeout><!-- in minutes -->
</session-config>
通过在文本字段中添加TextChangeListener
,输入将发送请求并自动刷新服务器超时。