`
yiminghe
  • 浏览: 1460405 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

简析 Ext.LoadMask

EXT 
阅读更多

girdpanel 时如果指定了 loadmask 那么在 load 数据时会自动出现一个层遮盖,很酷,但看  gridpanel 的源码 ,丝毫找不到关于 loadmask 运动的一丝痕迹 ,而仅仅只有一段

 

this.loadMask = new Ext.LoadMask(this.bwrap,
Ext.apply({store:store}, this.initialConfig.loadMask));

 

bwrap 在父类 panel 中定义 ,正是遮盖层所在的位置


Class Ext.LoadMask


A simple utility class for generically masking elements while loading data. If the store config option is specified, the masking will be automatically synchronized with the store's loading process


则负责起了与 store 的协作 ,store 只需把它交给 loadmask  ,而自己不用显式调用 loadmask 的 show hide


于是在 loadmask 中便处理了 store的各种事件

 

this.store.on('beforeload', this.onBeforeLoad, this);
this.store.on('load', this.onLoad, this);
this.store.on('loadexception', this.onLoad, this);

 

从而  与 store  解耦 , store 的 load 函数 分析:

 

load: function(options) {
    options = options || {};
    //通知 loadmask 显示
    if (this.fireEvent("beforeload", this, options) !== false) {
        this.storeOptions(options);
        var p = Ext.apply(options.params || {},
        this.baseParams);
        if (this.sortInfo && this.remoteSort) {
            var pn = this.paramNames;
            p[pn["sort"]] = this.sortInfo.field;
            p[pn["dir"]] = this.sortInfo.direction;
        }
        //这个函数里 应该 结束后
        //fireEvent load 通知 loadmask 隐藏
        this.proxy.load(p, this.reader, this.loadRecords, this, options);
        return true;
    } else {
        return false;
    }
}
 

则正是调用了 loadmask ,由于基于 事件 ,当然我们也可以自由的添加 handler 到 beforeload .

分享到:
评论
1 楼 scnu_lts 2011-07-19  
load: function(options) { 
    options = options || {}; 
    //通知 loadmask 显示 
    if (this.fireEvent("beforeload", this, options) !== false) { 
        this.storeOptions(options); 
        var p = Ext.apply(options.params || {}, 
        this.baseParams); 
        if (this.sortInfo && this.remoteSort) { 
            var pn = this.paramNames; 
            p[pn["sort"]] = this.sortInfo.field; 
            p[pn["dir"]] = this.sortInfo.direction; 
        } 
        //这个函数里 应该 结束后 
        //fireEvent load 通知 loadmask 隐藏 
        this.proxy.load(p, this.reader, this.loadRecords, this, options); 
        return true; 
    } else { 
        return false; 
    } 


这个代码是store的加载代码 放在这里有点有点奇怪 真的起作用是 Ext.loadMask里的这锻
    onBeforeLoad : function(){
        if(!this.disabled){
            this.el.mask(this.msg, this.msgCls);
        }
    },

相关推荐

    jquery.loadmask.js

    jquery.loadmask.js

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    在这里,我们对Ext.getBody()这个返回当前文档主体DOM元素的方法返回的对象使用Ext.LoadMask,这样就会在整个页面上显示加载提示。 在用户点击确认按钮之后,我们将创建一个Ext.LoadMask实例,并调用show方法来显示...

    jquery.loadmask.zip

    Loadmask是一个jquery plugin,使用此插件可以在DOM元素加载或更改内容时为此DOM元素添加一个屏蔽层,以防止用户互动,同时起到提醒用户后台任务正在运行的作用。 使用此插件可以大大提高用户体验,此插件是一个...

    jquery loadmask 插件的使用方法

    <link rel="stylesheet" href="path/to/jquery.loadmask.css"> <script src="path/to/jquery.loadmask.min.js"> ``` 2. **基本使用** jQuery LoadMask的基本用法是选择要应用遮罩的元素,然后调用`.loadmask()`...

    Ext.grid.GridPanel属性祥解

    ### Ext.grid.GridPanel属性详析 #### 一、Ext.grid.GridPanel概述 `Ext.grid.GridPanel`是ExtJS中用于展示表格数据的核心组件之一。它提供了丰富的配置选项和方法来帮助开发者灵活地控制表格的表现形式及功能。...

    ext 资源汇总

    EXT.tree.Column用于设置树节点列的显示,EXT.tree.LoadMask可以在加载数据时显示遮罩。 4. **独立文件和注释**: 每个控件被编写为独立的文件,这意味着它们可以方便地被引入到项目中,降低了代码的耦合度,有利于...

    jquery loadmask 简单的遮罩

    `jquery.loadmask.css`包含了实现遮罩效果所需的样式,而`jquery.loadmask.js`则是JavaScript文件,包含了实现遮罩功能的代码。为了减小网络传输的负担,还提供了压缩后的版本`jquery.loadmask.min.js`,它在保留...

    jQuery的loadmask插件

    <link rel="stylesheet" href="path/to/jquery.loadmask.css"> <script src="path/to/jquery.js"> <script src="path/to/jquery.loadmask.js"> ``` 接下来,你可以通过调用jQuery对象的`.loadmask()`方法来启用或...

    jquery loading(遮罩)插件

    jQuery Loading插件用于当DOM元素加载或变化期间,对其进行遮挡阻止用户操作并告知有些后台任务还在进行。实现“正在加载中…”的效果。整个插件只有1kb左右。效果跟extjs遮罩(锁屏)效果基本一样。

    extjs mask load

    var mask = new Ext.LoadMask(Ext.getBody(), {msg:"请稍候..."}); // 在需要时显示遮罩 mask.show(); // 数据加载完成后隐藏遮罩 mask.hide(); ``` 至于“工具”,这可能是指开发者使用的一些辅助工具,比如调试器...

    Ext圖片上傳、刪除、查看.net源碼

    这可能使用`Ext.window.Window`或`Ext.LoadMask`来实现加载效果,同时配合`Ext.Component`或`IFrame`加载图片资源。 此外,为了优化用户体验,项目可能还包含了进度条显示文件上传进度,这通常使用`Ext.ProgressBar...

    Extjs的loading效果

    var mask = new Ext.LoadMask(Ext.getBody(), {msg:"正在加载..."}); mask.show(); // 数据加载完成后 mask.hide(); ``` 2. **自定义CSS样式** 默认的加载效果可能无法满足所有设计需求,因此我们可以通过CSS...

    Ext3_MaskLayer:Ext遮罩层

    例如,`new Ext.LoadMask(Ext.getBody(), {msg:"正在处理,请稍候..."})`会为整个页面创建一个遮罩层,显示指定的提示信息。 2. **显示和隐藏**:遮罩层可以通过`show`和`hide`方法进行控制。当你需要显示遮罩层时...

    ASP.NET与EXT实现动感后台管理界面

    为了优化用户体验,开发者还可以利用EXT.js的Ext.LoadMask进行加载提示,避免用户在等待响应时感到不耐烦。EXT.js的Ext.MessageBox则可以用于弹出警告、确认和信息提示框,增强交互性。 总之,"ASP.NET与EXT实现...

    EXTJS窗口示例

    在EXTJS中,`Ext.LoadMask`是一个实用的组件,可以在任何元素上显示等待指示器,以告诉用户应用程序正在进行后台处理。它可以覆盖整个窗口,也可以只覆盖特定区域: ```javascript // 对整个窗口应用等待指示器 ...

    jquery-loadmask-0.4[蜗牛修改版]

    jquery-loadmask-0.4[蜗牛修改版],是对jquery-loadmask-0.4 ,基于jquery,实现指定页面DOM元素、指定等候、锁屏时间等功能;语法:$("#锁定DOM元素ID").mask("正在处理,请稍等......", -10[出现廷迟时间毫秒], ...

    ext 简单 进度条 伪进度条

    在这个例子中,`Ext.LoadMask` 被应用于 ID 为 "bar" 的 DOM 元素上,并且设置了一个加载提示消息为 "У"。此外,`removeMask` 属性被设置为 `true`,这意味着当遮罩不再需要显示时会自动移除。 ### 4. 伪进度条...

    Ext2 核心 API 中文详解 ExtJS2.0实用简明教程 ExtJS2.0教程 ExtJS2.0实用简明教程(easyjf) ext中文API+ sample

    8. **Ext.LoadMask**: 载入遮罩,用于在执行耗时操作时显示等待提示。 **三、ExtJS 2.0教程内容** 1. **基础篇**: 介绍ExtJS的基本架构和使用环境,讲解如何创建第一个ExtJS应用。 2. **组件篇**: 详述各组件的...

    ExtJs grid多选时获取选中的所有值

    loadMask: false, tbar: new Ext.Toolbar({ items: [ '-', '保存', '-', '取消' ] }) }); ``` #### 四、获取选中的所有值 为了获取选中行的所有值,可以使用`CheckboxSelectionModel`提供的方法`...

    ext整理的一些知识

    - **确认对话框**:`top.Ext.Msg.confirm("标题","内容",回调函数)`,其中回调函数将在用户作出选择后执行。 - **加载提示**:`var loadMask = new Ext.LoadMask(Ext.getBody(), {msg: '加载中...'});`,在需要长...

Global site tag (gtag.js) - Google Analytics