0

CSVファイルが生成され、ajax経由で提供されている間に進行状況バーを表示する方法はありますか? CSV ファイルは、データベースが原因で生成に時間がかかり、画面にローダーが必要であり、完了すると非表示になります。必要に応じて、これを ajax にするか、同じページにとどめたいと思います。現在、以下でこれを行っていますが、ファイルのダウンロードがいつ完了して進行を停止するかわかりません。

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

1 に答える 1

1

あなたの状況を正しく理解していれば、リクエストを受け取ったときにサーバー側でファイルを生成し、それをディスクに保存してからそこから提供しています。それがあなたがしていることである場合、2つのオプションがあります:

  1. 生成する必要がある行の総数と現在生成している行数を使用してファイルの生成を開始するときに、生成コードから共有状態 (memcached、redis、mongodb、sqlite データベースまたはファイル) を更新します。追加の ajax リクエストをエンドポイントに戻して、その共有状態から現在の値を取得します。
  2. 生成された CSV ファイルをクライアントに直接ストリーミングします。データの取得に多くの時間がかかる場合を除き、ダウンロード ダイアログの表示が速くなり、明らかに速度が向上します。
于 2012-04-05T21:35:17.220 に答える