页面上脚本造成Internet

编辑
  • 文档创建者:文档助手1
  • 浏览次数:3859次
  • 编辑次数:9次
  • 最近更新:Kevin-s 于 2019-06-04
  • 1. 问题描述

    填报模板,列数很多,包含大量编辑控件或是公式,可能会提示下图信息:




    各个浏览器出现如上对话框的极限值:

    • IE:执行超过 500w 条 JavaScript 语句时会出现。

    • FireFox:执行超过 10 秒时出现。

    • Safari:执行超过 5 秒时出现。

    • Opera:无论执行多久都不会出现。

    • Chrome:执行超过 30 秒(估计值)时出现。

    2. 问题原因

    弹出如上对话框的有两种原因:一是模板中包含大量的公式,另外一种是模板中有大量单元格。

    2.1 模板中包含大量公式会弹出对话的原因

    在对于填报模板使用大量字段的关联、高亮、数据字典、公式等会影响性能,由于是使用公式,在填报中设置保留公式用于计算时,我们会通过 JS 获取到单元格的公式属性,从而拿到计算公式,对于简单的加减乘除公式,JS自己在前台直接计算好,像 Format 那样的公式,JS 不知道具体的计算方法,就会发送请求给后台服务器,后台服务器将结果返回,因此如果大量的单元格使用填报时保留公式的话,就会产生很多 JS,导致出现 Internet Explorer 运行速度减慢。

    2.2 模板中包含有大量单元格

    对于填报预览数据扩展后会有大量的控件,在进行填报时,会对所有的数据进行操作,从而降低报表的性能,导致出现 Internet Explorer 运行速度减慢。

    3. 解决方案

    3.1 填报模板中包含大量的公式

    找到定义公式的单元格,打开公式定义的窗口,把填报时保留公式用于计算的勾去掉即可。

    3.2 填报中包含大量控件

    方案一:填报部分独立出来

    将需要进行修改的数据查询出来单独进行编辑,其他部分仍为普通展示,从而大大减少控件,如下图:自动查询 功能,这样大大的减少了控件并且只对取出的数据进行操作,因此大大提高了报表的填报性能。效果如下图:

    将填报模板分为两部分:填报部分和展示部分,这两部分的结构都是一样的;

    填报部分:设置控件,并通过参数过滤出需要修改的那条记录;

    展示部分:没有控件,不用过滤,显示出全部记录。

    参数部分:隐藏查询按钮,在下拉框中添加编辑后事件,实现 自动查询

    方案二:填报时弹出页面单独编辑

    另外一种方法,如下图,数据全部展示出来,在产品编号上添加超链,需要修改该记录时,点击超链接到另外一张模板单独进行填报修改,从而减少控件量:


    3.3 使用微软提供的修复包修复

    http://download.microsoft.com/download/5/9/5/595D11B8-A0FD-4EA0-BF0D-F113258FC28A/MicrosoftFixit50403.msi


    附件列表


    主题: 填报应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

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

    此页面有帮助吗?只是浏览 [ 去社区提问 ]