當前為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

附件列表


主題: 原簡體文檔
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

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

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

不再提示

9s后關閉

反饋已提交

網絡繁忙