2009-07-31 74 views
1

我有一個usercontrol與幾個下拉列表和一個按鈕,我希望用戶點擊按鈕(哪個response.redirects取決於在DDL的選擇)。推遲迴發3秒?

現在不是直接重定向,我想顯示一個小的加載圖標3秒,然後重定向...有沒有人做過這樣的事情?

+4

我曾經做過這樣的事得到了這個工作?不,因爲它遲緩。但是如果你想這樣做,這很簡單。取代重定向,顯示加載框並設置定時器,在定時器完成時調用您的函數。簡單。但毫無意義。 – jrockway 2009-07-31 15:12:05

回答

0

我用

System.Threading.Thread.Sleep(4000); 

在回傳

1

您可以使用javascript中的setTimeout()函數執行延遲。

setTimeout(function() { alert('After 5 seconds.'); }, 5000); 
0

您可能需要在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> 

您可能需要多一點玩...這是因爲我從來沒有做過的所有實例可能無法正常工作。

如果延遲簡直是「美學」,使它看起來它是工作,那麼我建議反對 - 程序員似乎是想加載酒吧很酷:)

3

的唯一的人不需要任何人工延遲就是有點跛腳。你可以做什麼,而不是提交你的表單顯示你的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,但如果它需要一段時間,他們看到它,並且它給了他們一些事情正在發生的感覺。

0

看起來你應該使用AJAX來實現這個頁面。您可以在頁面上放置進度指示器,以提醒用戶正在進行長時間運行的進程。