![]() |
说明: 该优化是针对 Firefox、Chrome 浏览器的,对 IE 浏览器效果不大. 目的: 通过js调用API,对表格中的500条记录作如此操作:如果货重大于40,则打上勾. 方案: 为了实现这个目的,我们准备了4个方案,记录了需要耗费的时间, 单位毫秒. |
未优化的原始方案 | 方案1: 优化重画 | 方案2: 开启LoadMask | 方案3: 启用表达式 |
![]() |
1.原始的方法是:function method() { var rows = AF.func("GetRows", ""); for(var row=0; row〈rows; row++) { var fr = AF.func("GetCellData", row + "\r\n Freight"); //取得货重 if(fr 〉 40) AF.func("SetCellData", row + "\r\n checked \r\n1"); } } 2.4个按钮执行的js: function run(num) { AF.func("Load", "treelistdata/data.txt"); //刷新数据 var dt1 = new Date; if(num == 1) method(); else if(num == 2) { AF.func("SetRedrawAble", "false"); //关闭重画 method(); AF.func("SetRedrawAble", "true"); //开启重画 } else if(num == 3) { AF.func("OpenLoadMask", ""); //用小动画代替重画 method(); AF.func("CloseLoadMask", ""); //关闭小动画 } else if(num == 4) AF.func("SetColCellData", "checked\r\n=if(Freight〉40, 1, 0)"); //表达式 var dt2 = new Date; document.getElementById("Label" + num).innerHTML = dt2.getTime() - dt1.getTime(); } |