現在のページの場所をサーバー上で PDF を生成するページに設定するボタンがページにあります。ファイルの生成と送信には数秒かかるため、クリックを受信して処理中であることをユーザーに通知したいので、ダウンロード プロセスにスピナーを追加しました。
$("#download-pdf-button").click(function() {
// some code to display a spinner
window.location.href = "/path/to/downloadGeneratingPage";
// some code to hide the spinner
});
ダウンロードは正常に機能しますが、このコードの実行方法では、スピナーがすぐに非表示になります。スピナーが表示されるようにする方法を見つけたいのですが、サーバーがリクエストを送り返すと、スピナーは再び非表示になります。
データを使用して非表示の iframe に送信するなど、他のいくつかのオプションを試しました$.get()
が、サーバーの HTTP 応答でできるようにファイル名を提案することはできません (ただし、スピナーを非表示にすることはできます)非表示にしたい時点で)。名前は大きな問題ではありませんが (あると便利ですが)、ユーザーが名前を変更せずに開くことができるように、少なくとも拡張機能を追加する必要があります。
基本的に私が欲しいのは:
- リクエスト送信時にスピナーを表示する
- ブラウザが受信したときにファイルをダウンロードします(必要に応じて、サーバー側のコードを変更できます。たとえば、異なる HTTP ヘッダーを送信できます)。
- ファイルの受信時にスピナーを非表示にする
- ファイル拡張子を追加できるようにする