使用Javascript导出CSV并显示进度条

时间:2012-04-05 20:29:32

标签: javascript ajax csv progress-bar

在生成CSV文件并通过ajax提供时,有没有办法显示进度条?由于数据库,CSV文件需要一段时间才能生成,并且需要屏幕上的加载程序并在完成后隐藏它。如果有必要,我希望这是ajax或保持在同一页面。现在我在下面这样做,但我不知道文件何时完成下载以停止进展。

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

1 个答案:

答案 0 :(得分:1)

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

  1. 当您开始生成包含您必须生成的总行数和当前生成的行数的文件时,从生成代码更新某些共享状态(memcached,redis,mongodb,sqlite数据库或文件) 。将其他ajax请求发送回端点,该端点将为您提供该共享状态的当前值。
  2. 将生成的CSV文件直接传输回客户端 - 除非大部分时间获取数据,否则将导致下载对话框的更快出现以及明显的加速。