2012-09-18 29 views
0

我有一个应用程序,其中一个页面大约需要1分钟才能加载。这是一个很大的计算和其他东西的大页面。如何在服务器响应之前显示进度指示器?

我想显示一个进度指示器,直到服务器给我回复。有没有人有这个想法?

+2

[如何在网页上显示进度条,直到网页完全加载?](http://stackoverflow.com/questions/6557271/how-to-show-progress-bar-on-web- page-until-web-page-is-full-loaded) –

回答

1

如果服务器需要很长时间才能创建页面的HTML,那么无法通过加载消息/进度指示器显示页面,然后显示内容。

我能想到的唯一方法是只用加载消息/进度指示器加载页面,然后进行AJAX调用以实际获取内容(需要很长时间才能生成)。

+0

我不能在那里使用ajax,因为我使用的是jsp,并且数据是从jsp中的列表中显示的。 –

0

您可以在上传时显示该代码。

$(document).ready(function() { 
    $.blockUI(); 
    //load your editor here 
    setTimeout(function(){ 
     $.unblockUI(); 
    }, 10000); 
}); ​ 
2

你需要显示的装载机,AJAX加载内容,当Ajax请求完成隐藏加载和显示的内容或简单地用新的数据替换装载机。

一个天真的实现可能看起来像这样,并会用#/ newcontent返回的任何内容替换#content的内容。

<div id="content"> 
<img src="/path/to/loader.gif" /> 
</div> 

<script> 
$("#content").load("/newcontent"); 
</script> 

或在您的情况下,它看起来像你真的想更换整个页面替换整个正文内容:

$('body').load('newpage.html'); 
+0

我不能在那里使用ajax,因为我使用的是jsp,并且数据是从jsp中的列表中显示的。 –

+1

为什么不呢? 1显示加载程序。 2对控制器映射的url进行Ajax请求(jsp生成花费很长时间..)3最后,jsp生成完成并请求返回,并且jquery用jsp中的内容替换加载器。应该不是问题,还是我误解了某些东西? – magnusson

0

在页面中添加一个div为掩盖,首先它会显示并阻止整个页面。并将div隐藏在onload处理程序中。这是一个平淡,可能不是一个好的解决方案。