阅读:1015 回复:0
实名用户_4bd05186
2

帖子

3

跟帖

1174

积分

中级榴莲
中级榴莲

解决表单子表列过多的性能问题。

楼主#
更多 发布于:2019-03-17 20:16
问题描述:给客户做的报销流程,由于客户要求,我们没有对报销明细的行数做限制,导致经常出现超过50行的情况(客户情况特殊,有些销售往往出差半年回一下公司,一次报销超过10万的情况都常有发生),而我们在报销审批后,需要与ERP对接,在表单上面按照ERP要求生成账套,由财务审核后导入ERP。
问题:这时候,我们会发现,报销明细+ERP账套加起来两个子表的行数将近100多行,由于子表有列数超过10列,而且还有一些合计以及显示格式以及change事件,所以整个页面加载会超过5分钟(浏览器会显示失去响应)。

图片:menu.saveimg.savepath20190317200857.jpg

图片:menu.saveimg.savepath20190317200845.jpg


解决方案:加载ERP数据的时候,将报销明细这个子表先给删除掉,然后再加载ERP账套子表,减少了页面DOM,显著提升了性能(1分钟之内能够加载完成。)不废话,上代码。

//载入财务核对的数据
           $.get('/Portal/cgt_ERP/GetExpenseDetail_check/' + $.MvcSheetUI.SheetInfo.BizObjectID+'?_t='+Math.random(), function (res) {
               //第一。为了页面性能,需要先删除大表格的报销明细
               var ExpenseDetailContainerHtml = $('#ExpenseDetailContainer').html();
               $('#ExpenseDetailContainer').empty();
//第二。加载ERP表格,不在赘述。
                //第三。恢复报销明细
               $('#ExpenseDetailContainer').html(ExpenseDetailContainerHtml);
           });
游客

返回顶部