读书人

js + Icefaces API 写一个session就要

发布时间: 2012-08-26 16:48:06 作者: rapoo

js + Icefaces API 写一个session即将过期的提醒

最近做ICEFACES的项目 AJAX的, 要写一个session即将过期的提醒, 普通的项目直接一个js定时器就搞定了, 因为任何和服务器的响应都回刷新session的过期时间(重新计时),但是AJAX是部分刷新的, 你点个按钮 , session已经重新计算了,可是你的js定时器还在计时,这个就出问题了。

?

开始GOOGLE找了个帖子:http://www.iteye.com/topic/974771?page=3#1998066

这个帖子讨论了很多方法,我也各种过滤器, 各种后端调用前段JS, 各种失败, java那后端调用前段的类库居然不支持setTimeout()。

?

后来发现ICEFACES是自己有api的

?

?

//------------------------------------// Function to warn user session is about to expire//------------------------------------function InitSessionTimer() { warn_sec = 55 * 60 * 1000; //Warning time in milliseconds timeout_sec = 60 * 60 * 1000; //Actual timeout in milliseconds show_warning = true; epoch = new Date().getTime(); CheckSessionStatus();}window.onload = function(){ InitSessionTimer(); //use ICEFaces API Ice.onSendReceive() Ice.onSendReceive('document:Body', function(){}, function(){InitSessionTimer();} );};function CheckSessionStatus() { //Check for session warning epoch2 = new Date().getTime(); if (epoch2 > epoch + warn_sec && epoch2 < epoch + timeout_sec && show_warning) { show_warning = false; //Don't show again alert_shown = true; alert("Your session is about to expire. Please save your changes."); setTimeout("CheckSessionStatus();", 1000 * 60); } else { setTimeout("CheckSessionStatus();", 1000 * 60); }}

读书人网 >JavaScript

热点推荐