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