Ext中使用mask方法来模拟请求进度

系统 1611 0

在实际开发系统中,经常会点击菜单M1,显示页面P1,然后点击菜单M2,显示P2;

说明:其中P1和P2页面都显示在同一个frame:pageFrame中

由页面P1切换到显示页面P2时,可能需要一定的时间,以前的做法是这段时间可以显示一个进度条,表示正在请求页面P2,最近一段时间看到了Ext的Element的mask方法,使用了一下,感觉可以使用它模拟一个进度条

首先,菜单的点击事件中赋值pageFrame的src,调用方法maskDocAll(),假如页面MyPage.html包含pageFrame,则这个方法定义在MyPage.html中,代码如下:

MyPage.html:
<html>
<head>
<style type="text/css"> 
 .page-loading div{
     padding:5px 10px 5px 25px;border:1px;
     background: #fbfbfb url( '../extimages/extanim32.gif' ) no-repeat 5px 5px;
     line-height: 36px;
    }
</style>
<!--   引入Ext的js文件和css文件 -->
<script language="">
var  t  =   " &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;正在请求页面...&nbsp;&nbsp; " ;
function  maskDocAll()  {
    
var  body  =  Ext.getBody();
    
// body.mask(t,'x-mask-loading');
     // window.top.pageFrame.document.body.innerHTML = "";
    body.mask(t, ' page-loading ' );
    Ext.fly(Ext.query(
' div[class^=ext-el-mask-msg] ' )[ 0 ]).center();        
}
function unmaskDocAll() {
  var body = Ext.getBody();
  body.unmask();
 }
</script>
</head>
<frameset>
   <!--    省略菜单frame....... ->
   <frame id="pageFrame" src="" onload="unmaskDocAll()"/>
</frameset>
<noframes> 
<body>
</body>
</noframes> 
</html>

注意body.mask(...)这段代码,其中page-loading是自定义的css,实际上是现实一个动态装载的图片。

然后pageFrame的onload事件中对body进行unmask,即模拟的进度条消失.

效果如下(点击左边菜单,页面切换时的图片,底部整个为灰色空白页面,上面显示动态装载图片和文字正在请求页面...字样):

Ext中使用mask方法来模拟请求进度

Ext中使用mask方法来模拟请求进度


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论