我在ASP.NET頁面中有一個數據中繼器。它加載了大量的東西,並花費4 - 5秒鐘來顯示圖像。我無法頁面或獲取我需要顯示所有數據的部分項目,所以我需要一個加載消息或gif,但我該怎麼做?誰能幫我?如何在中繼器獲取數據時顯示「加載...」
感謝
我在ASP.NET頁面中有一個數據中繼器。它加載了大量的東西,並花費4 - 5秒鐘來顯示圖像。我無法頁面或獲取我需要顯示所有數據的部分項目,所以我需要一個加載消息或gif,但我該怎麼做?誰能幫我?如何在中繼器獲取數據時顯示「加載...」
感謝
如果您的方案沒有一個阿賈克斯(經典形式回發或瀏覽器是通過鏈接點擊重定向) 我插入動畫GIF轉換成HTML佈局只是重定向前/後回(隱藏DIV顯示或類似的東西)。 AFAIK這種方法會遇到舊版瀏覽器的問題(動畫將被凍結)
另一種方法叫做page-processor?。瀏覽器被重定向到顯示動畫的中間頁面,而頁面請求已被加載。
您也可以從服務器發送JavaScript代碼(Response.Write/Response.Flush),它將動畫您的當前頁面。
我還建議阻止/隱藏UI控件,例如「發送表單」,否定不耐煩的用戶點擊兩次,如果服務器響應時間過長。
使用iframe。本質上,您可以在iframe中打開運行緩慢的頁面,並使用iframe引發的事件顯示加載圖像。
<script type="text/javascript">
var t;
//on iframe state change display or hide the loader tag
function readyStateChanged(state)
{
if (state == 'complete' || state == 4 || state == '4' || state == 'Complete')
{
//hide the loader
document.getElementById('loader').style.display = 'none';
clearTimeout(t);
} else
{
//diaplay the loader
document.getElementById('loader').style.display = '';
//hide the loader if the iframe never loads
t = setTimeout("hideLoader()", 5000);
}
}
//hide the loading tag
function hideLoader()
{
document.getElementById('loader').style.display = 'none';
clearTimeout(t);
}
</script>
<div id="loader" style="display: none;"><img />loading...</div>
<iframe id="frameX" src="your_page.aspx" width="100%" height="400px" onload="hideLoader();" onreadystatechange="readyStateChanged(this.readyState);" ></iframe>
該場景是;用戶選擇一種類型,然後選擇所選類型和季節的類型,然後頁面顯示具有該過濾器的項目。 我想做的是當中繼器是數據綁定頁面必須被鎖定並加載加載圖片,以便用戶可以理解它正在加載 對不起,我的英語不好:) – Xenon 2010-05-19 10:48:24