Extjs优化(一)删除冗余代码提高运行速度

  Extjs 本身是一个加载慢的JS框架,这个需要程序员的多去优化,之前说过了JS的打包的优化

  这次来写写怎么减少冗余代码,也是提高运行速度,包含了1、删除代码通用2、提交表单通用3、初始化Gird通用化 本次只写 删除代码优化

  先贴出代码

  

复制代码 代码如下:

  /**

  * 获取个GridPanel的选择的记录

  */

  function $getGdSelectedIds(grid, idName) {

  var selRs = grid.getSelectionModel().getSelections();

  var ids = Array();

  for (var i = 0; i < selRs.length; i++) {

  ids.push(eval("selRs[i].data." + idName));

  }

  return ids;

  }

  /**

  *删除

  */

  function $postDel(a) {

  Ext.Msg.confirm("信息确认", "您确认要删除所选记录吗?",

  function(b) {

  if (b == "yes") {

  Ext.getBody().mask("正在删除,请稍等");

  Ext.Ajax.request({

  url: a.url,

  params: {

  ids: a.ids

  },

  timeout: 100000000,//default 30000 milliseconds

  method: "POST",

  success: function(c, d) {

  Ext.getBody().unmask();

  Ext.ux.Toast.msg("操作信息", "成功删除该记录!");

  if (a.callback) {

  a.callback.call(this);

  return;

  }

  if (a.grid) {

  a.grid.getStore().reload();

  }

  },

  failure: function(c, d) {

  Ext.getBody().unmask();

  Ext.ux.Toast.msg("操作信息", "操作出错,请联系管理员!");

  }

  });

  }

  });

  }

  /**

  * Gird批量删除操作

  */

  function $delGridRs(a) {

  var b = $getGdSelectedIds(a.grid, a.idName);

  if (b.length == 0) {

  Ext.ux.Toast.msg("操作信息", "请选择要删除的记录!");

  return;

  }

  var c = {

  url: a.url,

  ids: b,

  grid: a.grid

  };

  $postDel(c);

  }

  单个删除代码优化结果由原来的24行代码修改为5行代码搞定,代码看上去也比较好看点。

  

复制代码 代码如下:

  var a = Ext.getCmp("PlanBookAllGrid");

  //单个删除

  $postDel({

  url: __ctxPath + "/traincost/multiDelPlanBook.action",

  ids: b,

  grid: a

  });

  批量删除也是一样

  

复制代码 代码如下:

  $delGridRs({

  url: __ctxPath + "/traincost/multiDelPlanBook.action",

  grid:c.gridPanel,

  idName:'mainid'

  });