0

有没有办法在通过 ajax 生成和提供 CSV 文件时显示进度条?由于数据库的原因,CSV 文件的生成需要一段时间,并且需要在屏幕上加载并在完成后将其隐藏。如果需要,我希望这是 ajax 或留在同一页面上。现在我正在下面执行此操作,但我无法确定文件何时完成下载以停止进度。

var iframe = document.createElement("iframe");
                iframe.src = (value.url);
                iframe.style.display = "none";
                document.body.appendChild(iframe);
4

1 回答 1

1

如果我正确理解您的情况,您会在收到请求时在服务器端生成一个文件,将其保存到磁盘,然后从那里提供服务。如果那是您正在做的事情,您有两个选择:

  1. 当您开始使用您必须生成的总行数和您当前生成的行数生成文件时,从您的生成代码中更新一些共享状态(memcached、redis、mongodb、sqlite 数据库或文件)。向端点发出额外的 ajax 请求,该端点将为您提供来自该共享状态的当前值。
  2. 将生成的 CSV 文件直接流式传输回客户端 - 除非大部分时间都在获取数据,否则这将导致下载对话框的出现速度更快并且速度明显加快。
于 2012-04-05T21:35:17.220 回答