这个问题已经问了很多次了,但我无法得到一个完美的答案来实现。所以我再试一次。
假设您希望在文件从服务器完全下载后显示一条消息。是的,有一些可能的方法可以上传文件,甚至在下载时显示进度条,但是是否有任何特定的实例/信息/事件应该告诉下载何时完成?
我所知道的是,它可能可以在 cookie 的帮助下实现。但是怎么做呢?
当您从服务器请求文件时,请从客户端向下载服务发送唯一密钥。
GET/Download?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。