Extjs優(yōu)化(一)刪除冗余代碼提高運行速度
更新時間:2013年04月15日 11:28:04 作者:
Extjs 本身是一個加載慢的JS框架,這次來寫寫怎么減少冗余代碼,也是提高運行速度,感興趣的朋友可以參考下哈,希望可以幫助到你
Extjs 本身是一個加載慢的JS框架,這個需要程序員的多去優(yōu)化,之前說過了JS的打包的優(yōu)化
這次來寫寫怎么減少冗余代碼,也是提高運行速度,包含了1、刪除代碼通用2、提交表單通用3、初始化Gird通用化 本次只寫 刪除代碼優(yōu)化
先貼出代碼
/**
* 獲取個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("操作信息", "操作出錯,請聯(lián)系管理員!");
}
});
}
});
}
/**
* 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);
}
單個刪除代碼優(yōu)化結(jié)果由原來的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通用化 本次只寫 刪除代碼優(yōu)化
先貼出代碼
復制代碼 代碼如下:
/**
* 獲取個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("操作信息", "操作出錯,請聯(lián)系管理員!");
}
});
}
});
}
/**
* 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);
}
單個刪除代碼優(yōu)化結(jié)果由原來的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'
});
您可能感興趣的文章:
- 使用RequireJS優(yōu)化JavaScript引用代碼的方法
- 利用javascript解決圖片縮放及其優(yōu)化的代碼
- Uglifyjs(JS代碼優(yōu)化工具)入門 安裝使用
- JS代碼優(yōu)化技巧之通俗版(減少js體積)
- js中if語句的幾種優(yōu)化代碼寫法
- nodejs的10個性能優(yōu)化技巧
- web性能優(yōu)化之javascript性能調(diào)優(yōu)
- js性能優(yōu)化 如何更快速加載你的JavaScript頁面
- javascript模版引擎-tmpl的bug修復與性能優(yōu)化分析
- JS 網(wǎng)站性能優(yōu)化筆記
- js 優(yōu)化次數(shù)過多的循環(huán) 考慮到性能問題
- JavaScript代碼性能優(yōu)化總結(jié)篇
相關文章
Extjs 3.3切換tab隱藏相應工具欄出現(xiàn)空白解決
在切換tabpanel的時候,把相應的工具欄隱藏掉,結(jié)果出現(xiàn)空白,先熊板板的空白不過后來終于解決,接下來與大家分享下解決技巧,感興趣的朋友可以參考下哈2013-04-04
ExtJS下 Ext.Direct加載和提交過程排錯小結(jié)
基礎實一點,會有好處的,排錯的時候就體現(xiàn)出來了,下面就Ext.Direct做一些排錯筆記與大家一一分享,感興趣的朋友可以參考下哈2013-04-04
extjs3 combobox取value和text案例詳解
使用combobox時,它有一個hiddenName的屬性,專門用于提交combobox中value的值,接下來介紹extjs3 combobox如何取value和text值,感興趣的朋友可以不要錯過了啊2013-02-02

