2011-11-13 16 views
1

我想知道是否有人會建議如何解決這個小的視覺錯誤?找出什麼時候下載通過ASP.NET或客戶端腳本停止

在我的asp.net代碼中,我生成了一個用戶可以下載的文件。僞代碼是這樣的:

Response.ContentType = "text/plain"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=" + FileName); 
Response.BinaryWrite(); 
Response.End(); 

我還使用jQuery來顯示在客戶端旋轉圓圈的動畫,同時在服務器上生成這樣的文件:

$(function() { 
    $('#ButtonBeginDownload').click(function() { 
     //When Submit button is clicked 
     $('#IdSubmitSpinner').css('display', 'inline-block'); 
    }); 
} 

和CSS對於微調是這樣的:

.submitSpinner 
{ 
    margin: 0px 10px 0px 6px; 
    display: none; 
    width: 28px; 
    height: 28px; 
    display: none; 
} 

和HTML:

<img id="IdSubmitSpinner" alt="" src="Graphics/spinner.gif" width="28" height="28" class="submitSpinner" /> 

上面的代碼工作正常,並且在下載開始時微調控制器開始旋轉,但不幸的是我似乎無法找到讓文件完成下載時微調控制器停止旋轉的方式。有誰知道如何解決這一問題?

+0

你如何觸發實際下載開始? –

+0

很久以前,但是你還記得你是否曾經找到過解決方案?我堅持相同的問題 –

+0

@HansPetterNaumann:我想我只是讓它旋轉。但下面使用Ajax的答案很可能是一條路。看看你是否能找到更好的解決方案,如果可以的話,在這裏發佈... – ahmd0

回答

0

如果您使用Ajax調用下載的文件,你可以用它來檢測啓動/停止傳輸:

$("#IdSubmitSpinner").bind("ajaxSend", function(){ // when user request sent 
      $(this).show(); 
    }).bind("ajaxComplete", function(){ // when response ended 
      $(this).hide(); 
    }); 
+0

謝謝,沒有我在瀏覽器中使用常規下載過程。你如何將Ajax調用添加到它? PS。我不想爲了顯示一個微調而不必要地使事情複雜化,如果你明白我的意思...... – ahmd0

+0

你可以使用'jQuery'' ajax()'系列函數檢索'plain/text'內容。例如: '$阿賈克斯({ 網址: 'yourPageURL', 類型: 'GET', 數據類型: '文本', 成功:函數(retrievedContent){// 你想檢索到的內容什麼都 } });' – fardjad

+0

我很抱歉,我仍然沒有按照你的建議。這將如何幫助我實現我期望的目標? – ahmd0