`
yiminghe
  • 浏览: 1433985 次
  • 性别: 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

    jquery.loadmask.zip

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

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

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

    jquery loading(遮罩)插件

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

    jquery loadmask 插件的使用方法

    本工程旨在展示jquery loadmask 插件的使用方法。 本工程编码方式为:UTF-8

    jQuery的loadmask插件

    NULL 博文链接:https://liuna718-163-com.iteye.com/blog/2112335

    RDF 使用帮助

    <link rel="stylesheet" ... loadmask.js 该文件是页面加载提示层,应该放在样式文件之后, rdf-all.js之前引入。 rdf-all.js 该文件已经包含了ext 框架的js 文件,它应该在执行js 之前引入,而且在样式文件之后。

    Silverlight版本的LoadMask DemoSL

    Silverlight版本的LoadMask DemoSL

    jquery loadmask 简单的遮罩

    jquery loadmask 遮罩 好用 占用比较小

    xheditor+requireJS+loadmask

    集成xheditor,loadmask和requireJS完成的通过JQuery异步提交数据到服务器的代码

    ExtJs设置GridPanel表格文本垂直居中示例

    业务场景,需要实现最终效果图如下: GridPanel代码如下配置: 代码如下: { xtype : ‘grid’, id : ‘grid_jglb’, frame : true, region : ‘center’, title : ‘列表详细信息’, columnLines : true, loadMask :...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    ExtAspNet v2.2.1 ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有CSS,没有UpdatePanel,没有WebServices的Web应用程序。 支持的浏览器: IE 7.0+, ...

    extjs mask load

    NULL 博文链接:https://rdman.iteye.com/blog/1156440

Global site tag (gtag.js) - Google Analytics