2
我有一個簡單的頁面按鈕,它通過JavaScript調用HttpHandler。從javascript中調用HttpHandler
HttpHandler獲取大量文件並將它們添加到一個zip文件,完成工作後,zip文件將被添加到Response。
此操作可能需要幾分鐘的時間。我想在完成HttpHandler的工作後執行一些JavaScript函數。
我該怎麼辦?
我的代碼:
<asp:Button ID="btnDownload" runat=server Text="Download" OnClientClick="Download()" />
<script type="text/javascript">
function Download()
{
var url = 'FileStorage.ashx';
window.open(url);
}
</script>
UPD 1:
我已經找到其他的解決辦法。使用XMLHttpRequest。
代碼:
<script type="text/javascript">
var xmlHttpReq = createXMLHttpRequest();
function Download() {
var url = 'FileStorage.ashx';
xmlHttpReq.open("GET", url, false);
xmlHttpReq.onreadystatechange = onResponse;
xmlHttpReq.send(null);
}
function onResponse() {
if (xmlHttpReq.readyState != 4)
{ return; }
var serverResponse = xmlHttpReq.responseText;
alert(serverResponse);
}
function createXMLHttpRequest() {
try { return new XMLHttpRequest(); } catch (e) { }
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { }
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
alert("XMLHttpRequest not supported");
return null;
}
</script>
在onResponse()我可以看到的responseText(二進制)我的zip文件。但我對瀏覽器如何下載文件等工作的httphandler的結果並不知情。
任何想法?
謝謝,但我不能使用JQuery,我需要其他解決方案 – Ukraine 2011-05-15 12:35:07
不知道我可以幫忙。您顯然需要知道處理程序何時完成執行,也許輪詢目錄中zip文件的計時器。一旦完成並找到文件,運行一個函數。雖然這看起來不對。抱歉。 – Dietpixel 2011-05-15 12:39:27