クライアントとサーバー間の通信があります。プロセスは簡単です:
- ファイルシステムでPDFを生成するコントローラーにAJAXPOSTリクエストを送信しています
- 上記のリクエストが成功すると、フォームのGETリクエストが行われ、PDFが返され、標準のブラウザの[保存または開く]ダイアログボックスが開きます。
2段階のプロセスを使用している理由は、PDFの生成中にプログレスバーが必要になるためです。
2番目のリクエストがAJAXリクエストの一部ではなくフォーム送信である理由は、標準のブラウザの[保存または開く]ダイアログボックスが表示されないためです。
このアプローチの問題は、IE7とIE8が迷惑な通知バーをポップアップして、コンテンツをダウンロードするのは危険であり、それを望まないことをユーザーに通知することです。
それで:
- プログレスバーが必要です。
- AJAXリクエストのみを行う場合は、[保存または開く]ダイアログボックスをポップアップする方法が必要です。
- フォームのGET送信に行く場合、サーバーとクライアント間の共有フラグのように、進行状況バーを停止するためにファイルがいつ生成されたかを知る方法が必要です。
助けていただければ幸いです。