Extjs優(yōu)化(一)刪除冗余代碼提高運(yùn)行速度
更新時(shí)間:2013年04月15日 11:28:04 作者:
Extjs 本身是一個(gè)加載慢的JS框架,這次來(lái)寫(xiě)寫(xiě)怎么減少冗余代碼,也是提高運(yùn)行速度,感興趣的朋友可以參考下哈,希望可以幫助到你
Extjs 本身是一個(gè)加載慢的JS框架,這個(gè)需要程序員的多去優(yōu)化,之前說(shuō)過(guò)了JS的打包的優(yōu)化
這次來(lái)寫(xiě)寫(xiě)怎么減少冗余代碼,也是提高運(yùn)行速度,包含了1、刪除代碼通用2、提交表單通用3、初始化Gird通用化 本次只寫(xiě) 刪除代碼優(yōu)化
先貼出代碼
/**
* 獲取個(gè)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("信息確認(rèn)", "您確認(rèn)要?jiǎng)h除所選記錄嗎?",
function(b) {
if (b == "yes") {
Ext.getBody().mask("正在刪除,請(qǐng)稍等");
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("操作信息", "操作出錯(cuò),請(qǐng)聯(lián)系管理員!");
}
});
}
});
}
/**
* Gird批量刪除操作
*/
function $delGridRs(a) {
var b = $getGdSelectedIds(a.grid, a.idName);
if (b.length == 0) {
Ext.ux.Toast.msg("操作信息", "請(qǐng)選擇要?jiǎng)h除的記錄!");
return;
}
var c = {
url: a.url,
ids: b,
grid: a.grid
};
$postDel(c);
}
單個(gè)刪除代碼優(yōu)化結(jié)果由原來(lái)的24行代碼修改為5行代碼搞定,代碼看上去也比較好看點(diǎn)。
var a = Ext.getCmp("PlanBookAllGrid");
//單個(gè)刪除
$postDel({
url: __ctxPath + "/traincost/multiDelPlanBook.action",
ids: b,
grid: a
});
批量刪除也是一樣
$delGridRs({
url: __ctxPath + "/traincost/multiDelPlanBook.action",
grid:c.gridPanel,
idName:'mainid'
});
這次來(lái)寫(xiě)寫(xiě)怎么減少冗余代碼,也是提高運(yùn)行速度,包含了1、刪除代碼通用2、提交表單通用3、初始化Gird通用化 本次只寫(xiě) 刪除代碼優(yōu)化
先貼出代碼
復(fù)制代碼 代碼如下:
/**
* 獲取個(gè)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("信息確認(rèn)", "您確認(rèn)要?jiǎng)h除所選記錄嗎?",
function(b) {
if (b == "yes") {
Ext.getBody().mask("正在刪除,請(qǐng)稍等");
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("操作信息", "操作出錯(cuò),請(qǐng)聯(lián)系管理員!");
}
});
}
});
}
/**
* Gird批量刪除操作
*/
function $delGridRs(a) {
var b = $getGdSelectedIds(a.grid, a.idName);
if (b.length == 0) {
Ext.ux.Toast.msg("操作信息", "請(qǐng)選擇要?jiǎng)h除的記錄!");
return;
}
var c = {
url: a.url,
ids: b,
grid: a.grid
};
$postDel(c);
}
單個(gè)刪除代碼優(yōu)化結(jié)果由原來(lái)的24行代碼修改為5行代碼搞定,代碼看上去也比較好看點(diǎn)。
復(fù)制代碼 代碼如下:
var a = Ext.getCmp("PlanBookAllGrid");
//單個(gè)刪除
$postDel({
url: __ctxPath + "/traincost/multiDelPlanBook.action",
ids: b,
grid: a
});
批量刪除也是一樣
復(fù)制代碼 代碼如下:
$delGridRs({
url: __ctxPath + "/traincost/multiDelPlanBook.action",
grid:c.gridPanel,
idName:'mainid'
});
您可能感興趣的文章:
- 使用RequireJS優(yōu)化JavaScript引用代碼的方法
- 利用javascript解決圖片縮放及其優(yōu)化的代碼
- Uglifyjs(JS代碼優(yōu)化工具)入門(mén) 安裝使用
- JS代碼優(yōu)化技巧之通俗版(減少js體積)
- js中if語(yǔ)句的幾種優(yōu)化代碼寫(xiě)法
- nodejs的10個(gè)性能優(yōu)化技巧
- web性能優(yōu)化之javascript性能調(diào)優(yōu)
- js性能優(yōu)化 如何更快速加載你的JavaScript頁(yè)面
- javascript模版引擎-tmpl的bug修復(fù)與性能優(yōu)化分析
- JS 網(wǎng)站性能優(yōu)化筆記
- js 優(yōu)化次數(shù)過(guò)多的循環(huán) 考慮到性能問(wèn)題
- JavaScript代碼性能優(yōu)化總結(jié)篇
相關(guān)文章
ExtJS下書(shū)寫(xiě)動(dòng)態(tài)生成的xml(兼容火狐)
ExtJS下書(shū)寫(xiě)動(dòng)態(tài)生成的xml,只能有IE可以運(yùn)行,為了兼容性,必須考慮火狐的用戶,所以,這個(gè)程序?yàn)榱耍夯鸷脩舻募嫒菪?/div> 2013-04-04
extjs 時(shí)間范圍選擇自動(dòng)判斷的實(shí)現(xiàn)代碼
這篇文章主要介紹了extjs 時(shí)間范圍選擇自動(dòng)判斷的實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-06-06
Extjs 3.3切換tab隱藏相應(yīng)工具欄出現(xiàn)空白解決
在切換tabpanel的時(shí)候,把相應(yīng)的工具欄隱藏掉,結(jié)果出現(xiàn)空白,先熊板板的空白不過(guò)后來(lái)終于解決,接下來(lái)與大家分享下解決技巧,感興趣的朋友可以參考下哈2013-04-04
ExtJS下 Ext.Direct加載和提交過(guò)程排錯(cuò)小結(jié)
基礎(chǔ)實(shí)一點(diǎn),會(huì)有好處的,排錯(cuò)的時(shí)候就體現(xiàn)出來(lái)了,下面就Ext.Direct做一些排錯(cuò)筆記與大家一一分享,感興趣的朋友可以參考下哈2013-04-04
ExtJS 2.2.1的grid控件在ie6中的顯示問(wèn)題
最近在學(xué)習(xí)使用ExtJS進(jìn)行富客戶端開(kāi)發(fā)。使用ExtJS 2.2.1的grid控件時(shí),發(fā)現(xiàn)在ie6中運(yùn)行存在一個(gè)問(wèn)題2009-05-05
ExtJS 2.0 GridPanel基本表格簡(jiǎn)明教程
ExtJS中的表格功能非常強(qiáng)大,包括了排序、緩存、拖動(dòng)、隱藏某一列、自動(dòng)顯示行號(hào)、列匯總、單元格編輯等實(shí)用功能。2010-05-05
extjs3 combobox取value和text案例詳解
使用combobox時(shí),它有一個(gè)hiddenName的屬性,專(zhuān)門(mén)用于提交combobox中value的值,接下來(lái)介紹extjs3 combobox如何取value和text值,感興趣的朋友可以不要錯(cuò)過(guò)了啊2013-02-02最新評(píng)論

