location.href的回调函数

时间:2016-06-14 12:11:03

标签: javascript c#

我们有以下代码

使用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”直到处理程序完成执行。

我怎样才能做到这一点?

提前致谢。

2 个答案:

答案 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");
})