3

ダウンロードするデータのコンテンツの準備に時間がかかるため、ユーザーがリクエストを送信したときに「ダウンロードするファイルを準備しています」というメッセージを表示したい

次に、ファイルの準備ができたら、 send_file を使用してデータを送信します

完了したら、メッセージをクリアする必要があります

どうもありがとう

4

1 に答える 1

5

これが私がすることです。

1. prepare_file アクションを作成する

まず、ファイルを作成するだけのアクションを作成し、HTML をレンダリングするのではなく、作成されたファイルの名前で JSON オブジェクトをレンダリングします。

2. AJAX を使用して prepare_file アクションを呼び出す

クライアントでは、ユーザーがクリックしてファイルをダウンロードすると、「ダウンロードを準備しています...」というメッセージが表示され、そのアクションに対して AJAX 要求が実行されます。AJAX 経由で返される応答は、作成されたファイルの名前です。

3. ファイルのダウンロードにリダイレクト

最後に、ダウンロードの準備メッセージを非表示にして、作成されたファイルの名前で JavaScript を介してブラウザをファイルのダウンロードにリダイレクトすることができます。send_fileこのアクションで使用します。

質問では、ファイルのダウンロード中にメッセージをユーザーに表示し、ダウンロードが完了したときに別のメッセージを表示できるようにしたいと考えていました。ただし、独自のクライアント側ダウンロード マネージャーを作成しない限り、これは不可能です。ブラウザはファイルのダウンロードを完全に処理し、ユーザーはブラウザでファイルのダウンロードと進行状況を確認できます。だから、私はあなたがどこから来ているのか理解していますが、ユーザーが何が起こっているのかを知らされていないように感じるべきではありません.

少なくともこのソリューションでは、ファイルの準備中にメッセージを表示し、そのメッセージが消えると、ブラウザーからファイルのダウンロード ダイアログが表示されます。

これを行う方法の実際のコード サンプルが必要な場合は、お知らせください。

于 2010-12-20T16:14:34.633 に答える