`
flyworld
  • 浏览: 26820 次
  • 性别: Icon_minigender_1
  • 来自: 開曼
文章分类
社区版块
存档分类

ZK Demo 会话超时(session timeout)设定详解

    博客分类:
  • ZK
阅读更多

原来只是一个小设定


官方文档
http://books.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml/The_session-config_Element#The_timeout-message_Element

 

 

会话超时元素 (The session-timeout Element)

 

[默认: 0 (根据网页服务器)]

这个设定可以在客户端送出多个请求之间,指定会话有效的秒数。若指定负数则会话永不失效

默认0秒则使用zk缺省值(定义在/WEB-INF/web.xml中)。

 

超时讯息元素 (The timeout-message Element)

 

 

[可选择的]
[5.0.5 开始]
[默认: 定义在 MZk.UPDATE_OBSOLETE_PAGE 的讯息]

 

指定会话超时後提示的讯息。本设定只有当timeout-uri没被设定才会生效。

 

<session-config>
    <device-type>ajax</device-type>
    <timeout-message>Session timeout. Please reload.</timeout-message>
</session-config>

 

国际化

如果你想要指定一个根据地区提示的讯息,你可以指定前缀label接着:key如下

 

<session-config>
    <device-type>ajax</device-type>
    <timeout-message>label:timeout</timeout-message>
</session-config>

 

然後你必须要准备i3-Label 文件,参考 ZK Developer's Reference.

#默认i3-label.properties
#中文i3-label_zh_CN.properties
#可允许多行讯息
timeout={
会话超时,请重整页面
}

 

JavaScript

你可以提供JavaScript代码来取代默认的讯息对话。只要指定前缀script,客户端会直接直接执行你所设定的代码。

例子,你有一个function叫做foo.timeout用来处理超时之後的效果。你可以设定zk.xml如下

<session-config>
    <device-type>ajax</device-type>
    <timeout-message>script:foo.timeout('Session Timeout')</timeout-message>
</session-config>

 

这段代码必须为Javascript。

 

这是zkdemo超时之後的回应(大概 半小时)

 拆包一下

 

script:
  $("#z-timeout").remove();
  $('body').append('<div id="z-timeout"><span>Timeout, <b>move mouse</b> to refresh...<img src="/zkdemo/images/refresh2.gif" style="display:none;"/></span></div>');
  $("#z-timeout").slideDown(1000);
  $('body').mouseover(function() {
    $("img","#z-timeout").show();
    $('#container > div:gt(0)').fadeOut(1000);
    setTimeout("location.reload()", 1500);
  });

 

zk.xml (推测)

 

<timeout-message>script:<![CDATA[
  $("#z-timeout").remove();
  $('body').append('<div id="z-timeout"><span>Timeout, <b>move mouse</b> to refresh...<img src="/zkdemo/images/refresh2.gif" style="display:none;"/></span></div>');
  $("#z-timeout").slideDown(1000);
  $('body').mouseover(function() {
    $("img","#z-timeout").show();
    $('#container > div:gt(0)').fadeOut(1000);
    setTimeout("location.reload()", 1500);
  });
]]></timeout-message>

 

 

贴个效果



 

  • 大小: 27.9 KB
  • 大小: 45.9 KB
分享到:
评论
1 楼 sun4love 2010-12-16  

相关推荐

Global site tag (gtag.js) - Google Analytics