我正在使用href链接从服务器下载文件。我想在完全从服务器下载文件后做一些活动。与XMLHTTP一样,我可以在href上设置一些回调函数,该函数将在完成请求时调用。
我的代码就像这样
///link to download report
<div class='report-download'><a href='' id='downloadreq'></a></div>
$("#report-download").click(OnClick);
///onlick function
functon OnClick()
{
///start progress bar
$("#downloadreq").attr("href","8001.html?data=dowloadreport");
//stop progress bar
}
我想在下载时显示进度条,我有代码来启动和停止进度条窗口。但是当我插入代码来停止进度条时,它会在实际下载完成之前执行并且进度条消失。如何确定报告下载已完成(或)是否可以确定下载已完成。报告下载所需的时间将取决于要下载的记录数。所以我不能等待默认时间段并停止进度条。
答案 0 :(得分:2)
我认为没有像event
那样知道文件下载是否已经完成。如果我是你,我会做这样的事情:
$_SESSION['lock'] = true;
这样的变量,并会在开始将流发送到输出之前设置它$_SESSION['lock'] = false;
lock
值以查看文件是否已完成。让我们通过AJAX每次2-5秒。lock
为false
,我可以做任何需要,但我不知道如何显示进度条,甚至大约。请注意,如果您不使用类似$_SESSION
的内容,则锁定机制根本不起作用,因为脚本每次都会作为一个新的运行,而不知道最近的变量,等
<强>更新强>
在理解源代码方面,您可能希望使用$_SESSION['finished']
代替$_SESSION['lock']
,这会更有意义。