Form表单提交通用实现,等待效果
分类:美高梅游戏官网网站

Extjs 本身是一个加载慢的JS框架,这个需要程序员的多去优化,之前说过了JS的打包的优化
这次来写写怎么减少冗余代码,也是提高运行速度,包含了1、删除代码通用2、提交表单通用3、初始化Gird通用化 本次只写 删除代码优化
先贴出代码

复制代码 代码如下:

Ext.Ajax.request({});的觉得需要Mask遮挡的效果 方法一 :(标红部分) [javascript] { text: 删除, iconCls: btn-del, scope: this, handler: function()...

批量删除也是一样

saveRecord: function() {
$postForm({
formPanel:this.formPanel,
scope:this,
url: __ctxPath + "/basedata/saveStudentDepartment.action",
params:{},
callback: function(d, f) {
var e = Ext.getCmp("StudentDepartmentGrid");
if (e != null) {
e.getStore().reload();
}
b.close();
}
});

方法二:(标红部分)

复制代码 代码如下:

使用改代码只需要13行代码 原始需要25-30行代码搞定 ,示例:

[javascript]
<span style="color:#FF0000;">    var myMask = new Ext.LoadMask(Ext.getBody(), {   
              msg: '正在保存,请稍后!',   
              removeMask: true //完成后移除   
          });   
          myMask.show();  </span> 
         
    Ext.Ajax.request({             
    url : 'infoPlatform/TogBuy!publish.action',   
    <span style="color:#FF0000;">waitMsg : '正在发布...',</span>   
    scope : this,   
    success : function(f, o) {   
        <span style="color:#FF0000;">myMask.hide();  </span> 
        App.setAlert(true, "test");   
    },   
    failure : function(f, o) {   
       <span style="color:#FF0000;"> myMask.hide();  </span> 
        App.setAlert(false, "test");   
    }   

复制代码 代码如下:

您可能感兴趣的文章:

  • js中if语句的几种优化代码写法
  • javascript教程:关于if简写语句优化的方法
  • nodejs的10个性能优化技巧
  • JavaScript也谈内存优化
  • JS对img标签进行优化使用onerror显示默认图像
  • Uglifyjs(JS代码优化工具)入门 安装使用
  • js性能优化 如何更快速加载你的JavaScript页面
  • js 优化次数过多的循环 考虑到性能问题
  • JavaScript优化以及前段开发小技巧

 

/**
* 获取个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);
}

/**
* 提交表单
*/
function $postForm(a) {
if (a.formPanel.getForm().isValid()) {
var b = a.scope ? a.scope: this;
a.formPanel.getForm().submit({
scope: b,
url: a.url,
method: "post",
params: a.params,
waitMsg: "正在提交数据...",
success: function(c, d) {
Ext.ux.Toast.msg("操作信息", "成功信息保存!");
if (a.callback) {
a.callback.call(b, c, d);
}
},
failure: function(c, d) {
Ext.MessageBox.show({
title: "操作信息",
msg: "信息保存出错,请联系管理员!",
buttons: Ext.MessageBox.OK,
icon: "ext-mb-error"
});
if (a.callback) {
a.callback.call(b);
}
}
});
}
}

方法一 :(标红部分)
[javascript] 

                text: "删除", 
                iconCls: "btn-del", 
                scope: this, 
                handler: function() { 
                    var f = this.centerPanel; 
                    var d = f.getSelectionModel().getSelections(); 
                    if (d.length == 0) { 
                        Ext.ux.Toast.msg("信息", "请选择要删除的记录!"); 
                        return; 
                    } 
                    var g = Array(); 
                    for (var e = 0; e < d.length; e++) { 
                        g.push(d[e].data.dicId); 
                    } 
                    Ext.Msg.confirm("信息确认", "您确认要删除所选记录吗?", 
                    function(h) { 
                        if (h == "yes") { 
                            <span style="color:#FF6666;">Ext.getBody().mask("请稍等,正在删除中...","x-mask-loading");</span> 
                            Ext.Ajax.request({ 
                                url: __ctxPath + "/system/multiDelDictionary.action", 
                                params: { 
                                    ids: g 
                                }, 
                                method: "POST", 
                                success: function(i, j) { 
                                    <span style="color:#FF6666;">Ext.getBody().unmask();</span> 
                                    Ext.ux.Toast.msg("操作信息", "成功删除该数字字典!"); 
                                    f.getStore().reload(); 
                                }, 
                                failure: function(i, j) { 
                                    <span style="color:#FF6666;">Ext.getBody().unmask();</span> 
                                    Ext.ux.Toast.msg("操作信息", "操作出错,请联系管理员!"); 
                                } 
                            }); 
                        } 
                    }); 
                } 
            }, 

复制代码 代码如下:

复制代码 代码如下:

今天在做 Ext.Ajax.request({});的觉得需要Mask遮挡的效果

$delGridRs({
url: __ctxPath + "/traincost/multiDelPlanBook.action",
grid:c.gridPanel,
idName:'mainid'
});

单个删除代码优化结果由原来的24行代码修改为5行代码搞定,代码看上去也比较好看点。

您可能感兴趣的文章:

  • 使用RequireJS优化JavaScript引用代码的方法
  • 利用javascript解决图片缩放及其优化的代码
  • Uglifyjs(JS代码优化工具)入门 安装使用
  • JS代码优化技巧之通俗版(减少js体积)
  • js中if语句的几种优化代码写法
  • nodejs的10个性能优化技巧
  • web性能优化之javascript性能调优
  • js性能优化 如何更快速加载你的JavaScript页面
  • javascript模版引擎-tmpl的bug修复与性能优化分析
  • JS 网站性能优化笔记
  • js 优化次数过多的循环 考虑到性能问题
  • JavaScript代码性能优化总结篇

var a = Ext.getCmp("PlanBookAllGrid");
//单个删除
$postDel({
url: __ctxPath + "/traincost/multiDelPlanBook.action",
ids: b,
grid: a
});

本文由美高梅网址发布于美高梅游戏官网网站,转载请注明出处:Form表单提交通用实现,等待效果

上一篇:jquery时间下拉框小例子美高梅游戏官网网站,浅 下一篇:Parts阅读笔记【美高梅游戏官网网站】,简略说明
猜你喜欢
热门排行
精彩图文