我们有以下代码
使用Javascript:
function Download() {
//Show Loading Spinner
location.href = "FileDownloadHandler.ashx";
//Some Code(Hiding Loading Spinner)
}
aspx页面:
<input type="button" value="Download" onclick="Download();" />
“FileDownloadHandler”会将文件下载给用户。
实际结果 location.href下面的代码立即执行而不完成处理程序执行。
预期结果 我想停止执行“SomeCode”直到处理程序完成执行。
我怎样才能做到这一点?
提前致谢。
答案 0 :(得分:2)
最后我找到了解决问题的方法。使用jQuery插件我们可以实现这一点。我已经实现了它并且像魅力一样工作。
这个插件可以下载文件,并且有成功的功能。故障回调,因此我们可以控制在完成文件下载后应该执行的代码。
我们必须调用此插件来调用我们的FileDownloadHandler,而不是location.href,如下所示。
$("#loading").show();
$.fileDownload('FileDownloadHandler.ashx', {
successCallback: function (url) {
$("#loading").hide();
},
failCallback: function (html, url) {
$("#loading").hide();
alert("Failed");
}
});
以下更多详情
http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/
http://jqueryfiledownload.apphb.com/
http://github.com/johnculviner/jquery.fileDownload/blob/master/src/Scripts/jquery.fileDownload.js
答案 1 :(得分:0)
考虑使用Jquery get函数:https://api.jquery.com/jquery.get/
$.get("FileDownloadHandler.ashx", function() {
alert("Called Ashx Page");
})
.done(function() {
alert("Stuff to do after ashx");
})