反饋已提交

網絡繁忙

當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

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

1. 概述

1.1 问题描述

多用户并发一直是服务器部署中头一个关键考虑因素,目前 FineReport 已经提供了相对较好的多用户 Session 控制方案,也提供了 防宕机插件 来控制报表的生命周期。除以上两种方法外,本文提供了一种 JS 控制报表最长预览时间,超时自动退出的方法。

1.2 实现原理

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

2. 示例

2.1 准备 JS 文件

%FR_HOME%\webapps\webroot\help目录下新建一个 logout.js 文件。

点击可下载:logout.js

JavaScript 代码内容为:

setTimeout(function () {
    jQuery.ajax({
        url: "/webroot/decision/logout",//单点登录的报表服务器  
        data: {},
        timeout: 5000,
        success: function (data) {
            window.location = "/webroot/decision/login";
        },
        error: function () {
            alert("error"); // 登录失败(超时或服务器其他错误)
        }
});
 },3600);//最大预览时间(单位:毫秒),设置了 3600 毫秒后退出,可以根据实际需要进行修改

2.2 引用 JS 文件

打开一个模板,点击菜单栏「模板>模板 Web 属性>引用 JavaScript」,引用 logout.js 文件,如下图所示:

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

2.3 效果预览

保存模板,点击「分页预览」,经过 3.6 秒后,报表会自动退出,并进入到重新登录「决策平台」的界面,即通过 JavaScript 可以控制模板预览生命周期。如下图所示:

222

附件列表


主題: 原简体文档
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉