![]() |
说明: 该优化是针对 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();
}
|