`

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的

 

 

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)好东东

    在本示例中,"JavaEE登陆程序(JSF+ICEFaces)好东东"是一个采用JavaServer Faces (JSF) 和 ICEFaces 技术实现的登录界面。下面我们将详细探讨这两个技术以及它们在登录程序中的应用。 **JavaServer Faces (JSF)** ...

    icefaces API

    ICEfaces 是一个开源的JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIA)而设计。它提供了一套完整的组件库和强大的JavaScript库,使得开发人员能够轻松创建交互性强、...

    IceFaces 标签 API

    IceFaces是一个开源的JavaServer Faces(JSF)组件库,它提供了丰富的用户界面组件和先进的富互联网应用(RIA)功能。这个API主要关注的是IceFaces的自定义组件,这些组件极大地扩展了标准JSF组件的功能,为开发人员...

    hibernate+icefaces

    接着,IceFaces是一个基于JavaServer Faces(JSF)的开源富互联网应用程序(RIA)框架。它提供了一整套组件库和Ajax功能,使开发人员能够构建高度交互和响应式的Web应用。IceFaces的主要特点包括自动AJAX更新、实时...

    ICEfaces 4.0

    ICEfaces 是一个开源的 JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIAs)而设计。它提供了一套全面的组件库,允许开发人员创建高度交互性和响应式的Web应用。ICEfaces ...

    ICEfaces 1.8 .pdf

    ICEfaces不仅仅是一个UI组件库,它还提供了一个完整的解决方案,包括Facelets视图层技术、Spring框架集成以及Java Persistence API (JPA) 支持。 1. **Ajax Push**:ICEfaces的核心特性之一是其Ajax Push技术,这...

    ICEfaces-1.8.1

    ICEfaces 是一个开源的 JavaServer Faces (JSF) 框架,专为构建富互联网应用程序(Rich Internet Applications,RIAs)而设计。这个框架提供了一整套组件库,允许开发人员创建高度交互且响应迅速的 Web 应用程序,...

    ICEFaces 2.0

    ICEFaces 2.0 是一个基于JavaServer Faces (JSF) 技术的 AJAX 框架,专门用于构建富互联网应用程序(Rich Internet Applications, RIA)。它在JSF的基础上扩展,提供了高度交互性和实时用户体验,使开发者能够轻松地...

    icefaces1.8 for netbeans6.7beta

    而NetBeans则是一个流行的开源集成开发环境(IDE),适用于Java、JavaScript等编程语言。这里的“beta”指的是这个版本是NetBeans 6.7的测试版,意味着可能还存在一些未解决的问题或功能不完善的地方。 **IceFaces ...

    ICEFaces入门学习

    ICEFaces入门学习主要涵盖的是ICEFaces这一JavaServer Faces (JSF)组件库的使用和理解。ICEFaces是一款用于构建富互联网应用程序(Rich Internet Applications, RIA)的框架,它为开发者提供了丰富的用户界面组件和...

    ICEFaces+JSF

    ICEFaces是JSF的一个扩展,特别强调了AJAX支持,提供了更多动态和交互式的用户界面组件。 在JSF中,存在多个版本,如1.1、1.2和2.0。1.1版本较旧,通常不再使用。JSF 1.2在ICEFaces和RichFaces等第三方库的推动下...

    icefaces1_6_0 component api.chm

    icefaces1_6_0 component api.chm

    IceFaces Developer's Guide

    - **理解 IceFaces**: 对 IceFaces 有一个基本的理解,包括它可以为开发者提供什么。 - **关键概念**: 掌握与 IceFaces 富 Web 呈现环境相关的概念。 - **架构细节**: 深入了解 IceFaces 的架构。 - **参考信息*...

    ICEFaces Lib

    安装完ICEFaces Eclipse 插件后发现少了很多包,在建立icefaces工程的时候,往往需要到网上下载lib。所以本人在这里共享以下ICEFaces1.8的官方包。用意是省得大家在eclipse建立工程的时候专门去Icefaces官方网去下载...

    ICEfaces 2 for eclipse

    总结来说,ICEfaces 2 for Eclipse是一个强大的开发工具,通过提供丰富的JSF组件、自动化AJAX功能以及与Eclipse IDE的紧密集成,极大地简化了富互联网应用程序的开发流程。对于想要在JSF 2平台上构建高性能、交互性...

    IceFaces安装auctionMonitor示例

    IceFaces安装auctionMonitor示例

    ICEFaces :autocomplete-tutorial.zip

    ICEFaces 是一个强大的Java EE Web应用程序开发框架,专注于创建富互联网应用程序(Rich Internet Applications, RIA)。这个"autocomplete-tutorial.zip"压缩包提供了一个关于如何在ICEFaces框架中使用自动补全功能...

    ICEfacesDevelopersGuide.pdf

    - **组件库扩展**:ICEfaces提供了一个丰富的组件库,这些组件可以轻松地被集成到项目中以增加功能性和互动性。 - **性能优化**:提供了一些关于如何优化ICEfaces应用程序性能的建议,包括减少HTTP请求的数量和大小...

    spring icefaces hibernate 整合

    IceFaces是一个用于构建富互联网应用程序(Rich Internet Applications, RIA)的JavaServer Faces(JSF)组件库,提供了一整套用户界面解决方案;Hibernate则是一个对象关系映射(Object-Relational Mapping, ORM)...

Global site tag (gtag.js) - Google Analytics