【问题标题】:Is there any way to wait for first byte when clicking an HTML anchor?单击 HTML 锚点时有什么方法可以等待第一个字节?
【发布时间】:2020-02-17 12:00:25
【问题描述】:

我有一个锚点,单击该锚点会下载首先需要生成的文件。这需要几秒钟,所以对用户来说似乎什么都没有发生。我想在等待第一个字节时显示加载动画(之后浏览器显示下载进度),但我不知道该怎么做。

我不想执行 ajax 请求并注册进度事件,因为我希望浏览器的下载管理器处理实际下载。

有没有办法在下载实际开始时得到通知?

【问题讨论】:

  • 如果您不准备使用 ajax 或 fetch 等,那么我会拒绝。
  • 您至少可以使用 ajax 从服务器获取文件已创建的消息并删除加载程序。

标签: javascript html


【解决方案1】:

我最终通过创建 2 个端点来解决它:

  1. 生成文件并缓冲结果并将 url 返回到第二个端点的端点
  2. 返回生成(缓冲)结果的端点

用户单击的 HTML 按钮将向第一个端点询问 URL,该 URL 在文件生成之前不会返回。在该请求运行时,会显示加载动画以向用户指示正在生成文件。返回 URL 后,我停止动画,创建一个(不可见)锚,将 href 设置为该 url,将其附加到文档并单击它,导致浏览器下载文件(现在将开始下载立即)。

【讨论】:

    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    相关资源
    最近更新 更多