Extjs 本身是一個加載慢的JS框架,這個需要程式設計師的多去優化,之前說過了JS的打包的最佳化
這次來寫寫怎麼減少冗餘程式碼,也是提高運行速度,包含了1、刪除程式碼通用2、提交表單通用3、初始化Gird通用化本次只寫刪除程式碼最佳化
先貼出程式碼
/**
* 取得一個GridPanel的選擇的記錄
*/
function $getGdSelectedIds(grid, idName) {
function $getGdSelectedIds(grid, idName) {
.getSelectionModel().getSelections();
var ids = Array();
for (var i = 0; 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) { */
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("PlanBook 🎜>//單一刪除
$postDel({
url: __ctxPath "/traincost/multiDelPlanBook.action",
ids: b,
grid: a
});
批次刪除也是一樣
複製程式碼 程式碼如下:url: __ctxPath "/traincost/multiDelPlanBook.action", grid:c.gridPanel,
idName:'mainid'
});