2011-03-25 381 views
6

我需要一个进度轮节目的同时,大量的数据库和第三方卷曲查询正在同时等待用户做出。显示进度轮,而页面加载

如果进度轮秀本身向右走,或者我应该显示它一旦页面模板(而不是内容)中加载?

我应该表现出的进步轮,直到页面的HTML/JavaScript的加载完成时,或当PHP加载完成?

如果你能在原始代码大多数人如何做这个节目,那简直太好了。我使用jQuery,这是一个PHP网站。

回答

3

显示进度条,直到,PHP响应(返回的值可以是一个HTML)没有被加载到的JavaScript。

“我应该表现出的进步轮,直到 页面的HTML/JavaScript是做 装载,或者当PHP做 装?”

是这种方法

加载完成后,使用jQuery隐藏负载,并把内容到容器类。

<div class="loading"> 
</div> 
<div id="container"> 
</div> 



$('.loading') 
    .hide() // hide it initially 
    .ajaxStart(function() { 
     $(this).show(); 
    }) 
    .ajaxStop(function() { 
     $(this).hide(); 
    }); 
+0

哪一个?当PHP完成或HTML/JavaScript完成渲染时?直到, – babonk 2011-03-25 02:09:52

+0

显示进度条,php响应(返回值)未加载到javascript中。 – 2011-03-25 02:14:59

2

这是一个非常共同技术和过程是相当标准的。只有在即将发出请求时才会显示图形。这意味着将图形设置为在CSS中不显示任何内容。这比使用JavaScript来提高兼容性和性能的原因要好得多。

你可以在这里看到我已经创建了一个加载图形,添加到jQuery中,并绑定了一个异步事件发生在任意点击。该图形示出了由该连接之前,然后隐完成请求时。您使用完整的情况下,响应错误了。

<head> <style> .slider { display: none; }</style> </head> 
<body> 
    <div class="slider"><img src="someslidergraphic.gif"></div> 

    <script src="http://code.jquery.com/jquery.js"></script> 
    <script> 
    jQuery(function($) { 
     // The animation slider cached for readability/performance   
     var slider = $(".slider"); 

     // Arbitrary event  
     $("body").bind('click', function() { 
     // Show graphic before ajax 
     slider.show(); 

     // Fetch content from PHP 
     $.ajax({ 
      // Setings 
      ... 
      'complete': function() { 
      // Hide during complete 
      slider.hide(); 

      // Rest of code after request 
      ... 
      } 
     }); 
    }); 
    </script> 
</body> 
相关问题