最近做ICEFACES的项目 AJAX的, 要写一个session即将过期的提醒, 普通的项目直接一个js定时器就搞定了, 因为任何和服务器的响应都回刷新session的过期时间(重新计时),但是AJAX是部分刷新的, 你点个按钮 , session已经重新计算了,可是你的js定时器还在计时,这个就出问题了。
开始GOOGLE找了个帖子:http://www.iteye.com/topic/974771?page=3#1998066
这个帖子讨论了很多方法,我也各种过滤器, 各种后端调用前段JS, 各种失败, java那后端调用前段的类库居然不支持setTimeout()。
后来发现ICEFACES是自己有api的
The JavaScript API Reference shows the api and example.
http://www.icefaces.org/docs/latest/htmlguide/devguide/references4.html
ICEfaces javascript api :
Ice.onSendReceive(id, sendCallback, receiveCallback)
Ice.onAsynchronousReceive(id, callback)
Ice.onServerError(id, callback)
Ice.onSessionExpired(id, callback)
Etc…
I use the javascript api in ICEfaces:
Ice.onSendReceive(id, sendCallback, receiveCallback)
这样就非常方便了, 每次请求和响应都能拦截到,直接重置计时器即可。对AJAX了解还不深处与菜鸟阶段。找寻问题思路太死,还是经验和视野的问题。
附上代码吧:
//------------------------------------------------------------------------
// 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);
}
}
分享到:
相关推荐
在本示例中,"JavaEE登陆程序(JSF+ICEFaces)好东东"是一个采用JavaServer Faces (JSF) 和 ICEFaces 技术实现的登录界面。下面我们将详细探讨这两个技术以及它们在登录程序中的应用。 **JavaServer Faces (JSF)** ...
ICEfaces 是一个开源的JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIA)而设计。它提供了一套完整的组件库和强大的JavaScript库,使得开发人员能够轻松创建交互性强、...
IceFaces是一个开源的JavaServer Faces(JSF)组件库,它提供了丰富的用户界面组件和先进的富互联网应用(RIA)功能。这个API主要关注的是IceFaces的自定义组件,这些组件极大地扩展了标准JSF组件的功能,为开发人员...
接着,IceFaces是一个基于JavaServer Faces(JSF)的开源富互联网应用程序(RIA)框架。它提供了一整套组件库和Ajax功能,使开发人员能够构建高度交互和响应式的Web应用。IceFaces的主要特点包括自动AJAX更新、实时...
ICEfaces 是一个开源的 JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIAs)而设计。它提供了一套全面的组件库,允许开发人员创建高度交互性和响应式的Web应用。ICEfaces ...
ICEfaces不仅仅是一个UI组件库,它还提供了一个完整的解决方案,包括Facelets视图层技术、Spring框架集成以及Java Persistence API (JPA) 支持。 1. **Ajax Push**:ICEfaces的核心特性之一是其Ajax Push技术,这...
ICEfaces 是一个开源的 JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIAs)而设计。这个框架提供了一整套组件库,允许开发人员创建高度交互且响应迅速的 Web 应用程序,...
ICEFaces 2.0 是一个基于JavaServer Faces (JSF) 技术的 AJAX 框架,专门用于构建富互联网应用程序(Rich Internet Applications, RIA)。它在JSF的基础上扩展,提供了高度交互性和实时用户体验,使开发者能够轻松地...
而NetBeans则是一个流行的开源集成开发环境(IDE),适用于Java、JavaScript等编程语言。这里的“beta”指的是这个版本是NetBeans 6.7的测试版,意味着可能还存在一些未解决的问题或功能不完善的地方。 **IceFaces ...
ICEFaces入门学习主要涵盖的是ICEFaces这一JavaServer Faces (JSF)组件库的使用和理解。ICEFaces是一款用于构建富互联网应用程序(Rich Internet Applications, RIA)的框架,它为开发者提供了丰富的用户界面组件和...
ICEFaces是JSF的一个扩展,特别强调了AJAX支持,提供了更多动态和交互式的用户界面组件。 在JSF中,存在多个版本,如1.1、1.2和2.0。1.1版本较旧,通常不再使用。JSF 1.2在ICEFaces和RichFaces等第三方库的推动下...
icefaces1_6_0 component api.chm
- **理解 IceFaces**: 对 IceFaces 有一个基本的理解,包括它可以为开发者提供什么。 - **关键概念**: 掌握与 IceFaces 富 Web 呈现环境相关的概念。 - **架构细节**: 深入了解 IceFaces 的架构。 - **参考信息*...
安装完ICEFaces Eclipse 插件后发现少了很多包,在建立icefaces工程的时候,往往需要到网上下载lib。所以本人在这里共享以下ICEFaces1.8的官方包。用意是省得大家在eclipse建立工程的时候专门去Icefaces官方网去下载...
总结来说,ICEfaces 2 for Eclipse是一个强大的开发工具,通过提供丰富的JSF组件、自动化AJAX功能以及与Eclipse IDE的紧密集成,极大地简化了富互联网应用程序的开发流程。对于想要在JSF 2平台上构建高性能、交互性...
IceFaces安装auctionMonitor示例
ICEFaces 是一个强大的Java EE Web应用程序开发框架,专注于创建富互联网应用程序(Rich Internet Applications, RIA)。这个"autocomplete-tutorial.zip"压缩包提供了一个关于如何在ICEFaces框架中使用自动补全功能...
- **组件库扩展**:ICEfaces提供了一个丰富的组件库,这些组件可以轻松地被集成到项目中以增加功能性和互动性。 - **性能优化**:提供了一些关于如何优化ICEfaces应用程序性能的建议,包括减少HTTP请求的数量和大小...
IceFaces是一个用于构建富互联网应用程序(Rich Internet Applications, RIA)的JavaServer Faces(JSF)组件库,提供了一整套用户界面解决方案;Hibernate则是一个对象关系映射(Object-Relational Mapping, ORM)...