gpt4 book ai didi

javascript - 获取 href 上的请求状态

转载 作者:行者123 更新时间:2023-12-02 19:21:49 25 4
gpt4 key购买 nike

我正在使用 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

}

我想在下载时显示进度条,并且我有代码来启动和停止进度条窗口。但是当我插入代码来停止进度条时,它会在实际下载完成之前执行,并且进度条消失。我如何识别报告下载已完成(或)是否可以识别下载已完成。下载报告所需的时间很大程度上取决于要下载的记录数量。所以我不能等待默认时间段并停止进度条。

最佳答案

我认为没有像事件这样的方法来知道文件下载是否已经完成。如果我是你,我会做这样的事情:

  1. 通过 PHP 打开文件并通过 HTTP 将其发送到客户端浏览器
  2. 我会有一个像 $_SESSION['lock'] = true; 这样的变量,并在开始将流发送到输出之前设置它
  3. 文件下载完成后,我将通过 $_SESSION['lock'] = false; 解锁变量
  4. 在文件下载过程中,我可以检查lock值以查看文件是否已完成。假设通过 AJAX 每 2-5 秒一次。
  5. 完成后 - lockfalse,我可以做任何需要的事情,但我不知道如何显示进度条,甚至不知道如何显示进度条。

请注意,如果您不使用诸如 $_SESSION 之类的东西,锁定机制将根本不起作用,因为脚本每次都会作为新脚本运行,而不会知道最近的变数等

更新:

您可能需要使用 $_SESSION['finished'] 而不是 $_SESSION['lock'] ,这在理解源代码方面更有意义代码。

关于javascript - 获取 href 上的请求状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12461166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com