JS实现控制报表最长预览时间,超时自动退出

目录:

1、概述

多用户并发一直是服务器部署中头疼的一个问题,目前FineReport已经提供了相对较好的多用户session控制方案,也提供了防宕机插件来控制报表的生命周期。然而这并不是一个通用的解决方案,有些用户并不喜欢安装插件,也有些需要考虑旧版本的兼容性等,所以本文档提供了一种JS控制报表最长预览时间,超时自动退出的方法。

2、实现原理

利用JS提供的setTimeout()方法可以进行延时操作,再利用window.location来跳转到指定页面,但是如果直接使用强制跳转的话,用户本身登陆的会话并没有结束,我们需要用到ajax来进行数据的交互。

3、实现过程

1)在%FR_HOME%\WebReport\目录下新建一个logout.js文件,输入以下代码,保存

setTimeout(function(){ jQuery.ajax({ url:"/WebReport/ReportServer?op=fs_load&cmd=logout",//单点登录的报表服务器 data:{}, timeout:5000, success:function(data) { window.location=data; }, error:function(){ alert("error"); // 登录失败(超时或服务器其他错误) } }); },3600)//最大预览时间(单位:毫秒)  

这里为了测试,设置了3600毫秒后退出,也就是3.6秒,可以根据实际需要进行修改。

2)打开模板>模板web属性>引用JavaScript,依次进行选择js文件,点击增加,保存,即可引用上面的js文件,详细设置请查看引用JavaScript,如下图:


注:如果需要设置全局使用此设置,需要在服务器>服务器配置>引用Javascript中引用logout.js,这样服务器中所有的模板都会使用此生命周期控制方案了。

附件列表


主题:
标签: 已验证

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201