我有一個usercontrol與幾個下拉列表和一個按鈕,我希望用戶點擊按鈕(哪個response.redirects取決於在DDL的選擇)。推遲迴發3秒?
現在不是直接重定向,我想顯示一個小的加載圖標3秒,然後重定向...有沒有人做過這樣的事情?
我有一個usercontrol與幾個下拉列表和一個按鈕,我希望用戶點擊按鈕(哪個response.redirects取決於在DDL的選擇)。推遲迴發3秒?
現在不是直接重定向,我想顯示一個小的加載圖標3秒,然後重定向...有沒有人做過這樣的事情?
我用
System.Threading.Thread.Sleep(4000);
在回傳
您可以使用javascript中的setTimeout()函數執行延遲。
setTimeout(function() { alert('After 5 seconds.'); }, 5000);
您可能需要在JavaScript中重寫一些東西,並使用「setTimeout」來延遲加載。
<script type="text/javascript" >
var __handleSubmit = theForm.submit;
theForm.onsubmit = function() {
alert('loading'); //Show your message here
window.setTimeout(function() {
__handleSubmit();
}, 3000);
}
</script>
您可能需要多一點玩...這是因爲我從來沒有做過的所有實例可能無法正常工作。
如果延遲簡直是「美學」,使它看起來它是工作,那麼我建議反對 - 程序員似乎是想加載酒吧很酷:)
的唯一的人不需要任何人工延遲就是有點跛腳。你可以做什麼,而不是提交你的表單顯示你的throbber。我在發佈大型媒體文件的文檔上傳表單中使用以下內容。
<script type="text/javascript" id="PreJavaScript">
function NUsubmit(){
document.getElementById("uploadFormInputs").style.display = 'none';
document.getElementById("progressBar").style.display = 'block';
return true;
};
function init() { document.getElementById("UploadFormObject").onsubmit = NUsubmit; };
window.onload = init;
</script>
如果我沒有記錯,在IE瀏覽器的某些版本的gif動畫沒有發揮,但在IE6 +和Firefox的罰款。
這種方式如果回發很快,他們從來沒有看到throbber,但如果它需要一段時間,他們看到它,並且它給了他們一些事情正在發生的感覺。
看起來你應該使用AJAX來實現這個頁面。您可以在頁面上放置進度指示器,以提醒用戶正在進行長時間運行的進程。
我曾經做過這樣的事得到了這個工作?不,因爲它遲緩。但是如果你想這樣做,這很簡單。取代重定向,顯示加載框並設置定時器,在定時器完成時調用您的函數。簡單。但毫無意義。 – jrockway 2009-07-31 15:12:05