文件下载完成后,我们可以知道任何事件/方式吗?

时间:2016-02-24 07:57:17

标签: javascript php jquery

这个问题已被问了很长时间,但我无法得到完美的答案。所以我再试一次。

假设您希望在从服务器完全下载文件时显示消息。是的,有可能上传文件的方法,甚至在下载时显示进度条,但有没有特定的实例/信息/事件可以告诉下载何时完成?

我所知道的可能是它可以在cookie的帮助下实现。但是如何?

1 个答案:

答案 0 :(得分:2)

当您从服务器请求文件时,请从客户端向下载服务发送唯一密钥。

获取/下载?fileId = someId& cookieName = abc

当服务器完成文件内容的提供时,请设置一个具有唯一名称的cookie

var cookieName = Request.QueryString["cookieName"]; 
Response.Cookies.Add(new HttpCookie(cookieName , "true")
{
    Path = "/",
    HttpOnly = false
});

与此同时,在您的JavaScript中,使用您的唯一名称侦听一个cookie,一旦设置完成,请进行回调:

window.setInterval(function () {
    var cookie = $.cookie('abc');
        if (cookie !== null) {
            callback();
        }
}, 500);

您可能还想在完成后查看删除Cookie。