首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何实现等待界面 [已结帖,结帖人:zsmud]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zsmud
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2007-08-03 15:46:20 楼主
    在返回结果之前,我希望用户不要乱点按钮,跳出一个等待的界面,如何实现,有没有这方面的实例,先谢谢了
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cgisir
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-03 16:31:491楼 得分:5
    在页面元素的最上层放个刻着页面大小的DIV,给个背景色再设个透明度,在这个DIV的上边再放一个DIV,然后写上"正在提交请等待" OK后,把这两个DIV隐藏,然后执行你想要的操作就可以了~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zsmud
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-03 17:15:432楼 得分:0
    我用的是jsf+ajax架构,现在我在点下按钮的时候,在action指定方法回来值之前,我想让它进入等待界面,如何实现?用 <a4j:support> 怎么做?
    <h:commandButton   id= "synBtn "   value= "同步 "   onclick= "return   check(); "   action= "#{synTestToProduceBB.synchorize} "   style= "width:110 "   styleClass= "button "   disabled= "#{synTestToProduceBB.relaId==null||synTestToProduceBB.relaId== ' '} "   >
    </h:commandButton>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhulei2008
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-03 17:25:093楼 得分:5
    基本同意一楼的观点
    首先弹出个Div,
    然后用个层将页面覆盖一下,

    等装载完成关闭层隐藏DIV。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • twinkleliang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-06 16:58:134楼 得分:5
    <div   id= "loading ">
    <div   class= "loading-indicator ">          
    <img   src= " <%=imageRoot%> loading.gif "> 页面正在加载中.................
    </div>
    </div>
    <script   type= "text/javascript ">
    //判断页面是否加载完毕,如果加载完毕,就删除加载信息的DIV
    function   document.onreadystatechange()
    {
    try
    {
    if   (document.readyState   ==   "complete ")  
    {
              delNode( "loading ");
            }
            }
            catch(e)
            {
            alert( "页面加载失败 ");
            }
    }

    //删除指定的DIV
    function     delNode(nodeId)
    {      
        try
        {      
        var   div   =document.getElementById(nodeId);    
        if(div   !==null)
        {
        div.parentNode.removeChild(div);      
        div=null;        
        CollectGarbage();  
        }    
        }
        catch(e)
        {      
              alert( "删除ID为 "+nodeId+ "的节点出现异常 ");
        }      
    }
    </script>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gxl0870
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2007-08-06 17:12:235楼 得分:5
    建议你使用prototype.js这个框架
    他提供下面这个对象


    2.3.6     Ajax.Responders对象
    Ajax.Responders对象维护了一个正在运行的Ajax对象列表,在需要实现一些全局的功能时就可以使用它。例如,在Ajax请求发出以后需要提示用户操作正在执行中,而操作返回以后则取消提示。利用Ajax.Responders对象就可以实现这样的功能,如例2-15所示。
    例2-15     Ajax.Responders对象应用示例
    <!DOCTYPE   html   PUBLIC   "-//W3C//DTD   XHTML   1.0   Transitional//EN "
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
    <html>
            <head>
                    <title> chapter   3 </title>
                    <script   type= "text/javascript "   language= "javascript "
                      src= "prototype.js "   > </script>
                    <script   type= "text/javascript "   language= "javascript ">
                    function   test()   {
                            var   myAjax   =   new   Ajax.Request(
                                    'data.html ',  
                                    {
                                            method:   'get ',  
                                            onComplete:   showResponse
                                    }
                            );
                    }
                   
                    function   showResponse(response)   {
                            $( 'divResult ').innerHTML   =   response.responseText;
                    }              
                   
                    var   handle   =   {
                            onCreate:   function()   {
                                    Element.show( 'loading ');   //   当创建Ajax请求时,显示loading
                            },
                            onComplete:   function()   {
                                    //   当请求成功返回时,如果当前没有其它正在运行中的Ajax请求,隐藏loading
                                    if   (Ajax.activeRequestCount   ==   0)   {
                                            Element.hide( 'loading ');
                                    }
                            }
                    };
                    //   将handle注册到全局的Ajax.Responders对象中,使其生效
                    Ajax.Responders.register(handle);
                    </script>
            </head>
            <body>
            <input   type= "button "   value= "click "   onclick= "test() "   />
            <div   id= "divResult "   > </div>
            <div   id= 'loading '   style= "display:none ">
                    <img   src= "loading.gif "> Loading...
            </div>
            </body>
    </html>
    例2-15中定义了一个handle对象,其中包含onCreate和onComplete函数。页面中发出任何一个Ajax请求时都会调用onCreate方法,而请求完成时都会调用onComplete方法。例2-15的运行结果如图2-5所示。
    修改 删除 举报 引用 回复