反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

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

  • 文档创建者:yets11
  • 历史版本:12
  • 最近更新:RosieY 于 2022-08-30
  • 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

    附件列表


    主题: 二次开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526