2012-09-18 67 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處理程序中。這是一個平淡,可能不是一個好的解決方案。