填报应用 >> 填报FAQ >> 页面上脚本造成Internet Explorer运行速度减慢

页面上脚本造成Internet Explorer运行速度减慢

顶( )
最后更新日期: 人发表评论 (点击查看)
页面上脚本造成Internet Explorer运行速度减慢,点击条件按钮时弹出是否停止运行此脚本对话框
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 填报中包含大量控件——方案二:填报时弹出页面单独编辑
另外一种方法,如下图,数据全部展示出来,在产品编号上添加超链,需要修改该记录时,点击超链接到另外一张模板单独进行填报修改,从而减少控件量:
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3