阅读:1378
回复:0
|
解决表单子表列过多的性能问题。
问题描述:给客户做的报销流程,由于客户要求,我们没有对报销明细的行数做限制,导致经常出现超过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); }); |