【问题标题】:Determine Start of Download确定下载开始
【发布时间】:2011-04-07 09:06:41
【问题描述】:

我希望确定下载已经开始,最好使用 jQuery。

我正在提供动态创建的下载,创建需要 5-10 秒。我想使用 JavaScript 向浏览器发布正在创建文件的消息,并在创建完成并开始下载后删除该消息。

发布消息很容易。当用户单击链接时,我可以做到这一点。当不再需要该消息时,我找不到删除该消息的方法。

有没有办法做到这一点?

【问题讨论】:

标签: javascript jquery download


【解决方案1】:

您可以通过脚本提供下载,例如 download.php?file=image.jpg

当有人访问它并且脚本开始发送文件时,您可以将其记录到数据库中。

然后,您的站点可以通过查看数据库对另一个脚本进行 ajax 调用,该脚本会告知下载是否已开始。如果它开始了,你可以隐藏消息,如果没有,稍后再打一个电话。

【讨论】:

  • 我实现的解决方案与此接近。我没有将数据保存到数据库,而是将下载创建进度保存到会话 cookie 并通过循环 ajax 调用访问该信息。
【解决方案2】:

完全不同的方法可以避免 ajax 轮询:

下载请求的http响应设置了一个cookie,可以在提供下载链接的页面上定期检查。这样你只轮询浏览器的 cookie 存储而不是你的服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 2019-11-02
    相关资源
    最近更新 更多