Extjs优化(一)删除冗余代码提高运行速度
程序员文章站
2022-06-17 17:02:13
extjs 本身是一个加载慢的js框架,这个需要程序员的多去优化,之前说过了js的打包的优化 这次来写写怎么减少冗余代码,也是提高运行速度,包含了1、删除代码通用2、提交表...
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'
});
这次来写写怎么减少冗余代码,也是提高运行速度,包含了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'
});
上一篇: ps怎么设计一款关于霸道总裁的小说封面?