Extjs優(yōu)化(一)刪除冗余代碼提高運(yùn)行速度
更新時間:2013年04月15日 11:28:04 作者:
Extjs 本身是一個加載慢的JS框架,這次來寫寫怎么減少冗余代碼,也是提高運(yùn)行速度,感興趣的朋友可以參考下哈,希望可以幫助到你
Extjs 本身是一個加載慢的JS框架,這個需要程序員的多去優(yōu)化,之前說過了JS的打包的優(yōu)化
這次來寫寫怎么減少冗余代碼,也是提高運(yùn)行速度,包含了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("信息確認(rèn)", "您確認(rèn)要刪除所選記錄嗎?",
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行代碼搞定,代碼看上去也比較好看點(diǎn)。
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'
});
這次來寫寫怎么減少冗余代碼,也是提高運(yùn)行速度,包含了1、刪除代碼通用2、提交表單通用3、初始化Gird通用化 本次只寫 刪除代碼優(yōu)化
先貼出代碼
復(fù)制代碼 代碼如下:
/**
* 獲取個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)要刪除所選記錄嗎?",
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行代碼搞定,代碼看上去也比較好看點(diǎn)。
復(fù)制代碼 代碼如下:
var a = Ext.getCmp("PlanBookAllGrid");
//單個刪除
$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)化工具)入門 安裝使用
- 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修復(fù)與性能優(yōu)化分析
- JS 網(wǎng)站性能優(yōu)化筆記
- js 優(yōu)化次數(shù)過多的循環(huán) 考慮到性能問題
- JavaScript代碼性能優(yōu)化總結(jié)篇
相關(guān)文章
ExtJS GridPanel 根據(jù)條件改變字體顏色
ExtJS下GridPanel 根據(jù)條件改變字體顏色的實(shí)現(xiàn)代碼。2010-03-03ExtJS Store的數(shù)據(jù)訪問與更新問題
ExtJS Store的數(shù)據(jù)訪問與更新問題,需要的朋友可以參考下。2010-04-04extjs實(shí)現(xiàn)選擇多表自定義查詢功能 前臺部分(ext源碼)
extjs實(shí)現(xiàn)選擇多表自定義查詢功能 前臺部分(ext源碼) ,需要的朋友可以參考下。2011-12-12關(guān)于viewport,Ext.panel和Ext.form.panel的關(guān)系
那個深入淺出ext作者比我還懶 viewport存放Ext.panel對象,其容器中的成員可以以borderlayout方式布局2009-05-05extjs_02_grid顯示本地數(shù)據(jù)、顯示跨域數(shù)據(jù)
這篇文章主要介紹了extjs_02_grid顯示本地數(shù)據(jù)、顯示跨域數(shù)據(jù)的具體實(shí)現(xiàn),需要的朋友可以參考下2014-06-06ExtJS 設(shè)置級聯(lián)菜單的默認(rèn)值
ExtJS在修改這樣的頁面上賦值是很方便的,在正文中1.2.1代碼中可以看出,一行代碼就可以搞定,但這是對于普通控件而言,如文本框。對于ComboBox可沒這么簡單...2010-06-06