我陷入了与会话超时()相关的情况,而用户仍然在网页上处于活动状态。
在点击网页上的特定链接时发生了什么,用户被重定向到弹出页面。这个弹出窗口包含一个 Oracle 表单(基本上是一个小程序),这个小程序嵌入在 HTML 页面中。
当用户在这个弹出窗口上工作时,所有的请求都指向不同于 Jboss 服务器的表单服务器。所以经过一段时间会话超时。
我采取了以下方法来解决这个问题:
我在这个弹出页面下面添加了这个 jquery 代码。
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
var timer=0;
function run(){
timer++;
if(timer == 2){
$(document).bind('keyup mousemove',function(){
$(this).unbind('keyup mousemove');
$.ajax({
url: 'https://bdqap1.acclaris.com/bensol/common/refreshsession.jsp',
cache: false,
data: 'html',
success: function(data,status) {
}
});
timer=0;
});
}
}// run ends here
setInterval(run,1000);
</script>
此代码在弹出窗口上的任何鼠标或键盘移动时调用 jboss 服务器中的链接。这应该在用户处于活动状态时保持会话活动。
但是这种方法不起作用,因为 jquery 代码无法检测到 Applet 部分的任何移动。Jquery 不工作是小程序是焦点。
我想从客户端解决这个问题。有没有更好的方法?