CSDN-CSDN社区-Web 开发-Ajax

收藏 如何实现等待界面[问题点数:20,结帖人:zsmud]

  • zsmud
  • 等 级:
  • 结帖率:
楼主发表于:2007-08-03 15:46:20
在返回结果之前,我希望用户不要乱点按钮,跳出一个等待的界面,如何实现,有没有这方面的实例,先谢谢了
回复次数:5
  • cgisir用户头像
  • cgisir
  • (敏,哥永远爱你!)
  • 等 级:
#1楼 得分:5回复于:2007-08-03 16:31:49
在页面元素的最上层放个刻着页面大小的DIV,给个背景色再设个透明度,在这个DIV的上边再放一个DIV,然后写上"正在提交请等待" OK后,把这两个DIV隐藏,然后执行你想要的操作就可以了~
#2楼 得分:0回复于:2007-08-03 17:15:43
我用的是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>
#3楼 得分:5回复于:2007-08-03 17:25:09
基本同意一楼的观点
首先弹出个Div,
然后用个层将页面覆盖一下,

等装载完成关闭层隐藏DIV。
#4楼 得分:5回复于:2007-08-06 16:58:13
<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>
#5楼 得分:5回复于:2007-08-06 17:12:23
建议你使用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所示。
相关问题
如何实现界面之间传递变量的问题(在线等待) .NET技术/ ASP.NET ...
请高手指点,模块化的界面如何实现。谢。在线等待。 C++ Builder / VCL ...
在BCB中如何实现类似QQ界面?(急,在线等待) C++ Builder / 基础类 ...
优化大师的界面如何实现(在线等待)先谢谢VC/MFC / 界面- CSDN社区 ...
****在线等待:如何实现控件颜色的变化??????××× VC/MFC / 界面 ...
如何实现新建文件(菜鸟)(在线等待) VC/MFC / 界面- CSDN社区 ...