質問: ### 前提・実現したいこと javaScript/HTML/CSSを利用しております。 目的は、ブラウザから、ファイルをダウンロードしている途中で、プログレスバーを実装したい。完了したら、プログレスバーを閉じたい。 ### 発生している問題・エラーメッセージ ``` 現状は、システム上、サイズの大きいファイル(ログ)があるため、 ダウンロードに時間(10~30秒)がかかり、画面に何も出ないので、 改良したい。 問題は、ダウンロードに時間がかかるというのがことではないです。 対応は、サイズの大きいファイルは、小さくする対応等ではないです。 ``` ### 試したこと ・プログレスバーの実装 javaScriptを用いたサンプルが、web上に挙がっていましたので、どれかを利用したいと思います。 ・ダウンロードが完了した場合の判断 javaScriptの処理で、判断ができるのかが、解りません。 実装可能かもわかりません。 こちらが問題です。 ・javascriptで実装が可能か。 他の言語で、実装可能かもわかりません。 こちらが問題です。
回答: 無茶をすればそれっぽい事は出来なくないですが、ブラウザ互換が無かったりブラウザの仕様変更により動かなくなったりします。 一つは x_x さんが貼ってくれたページに貼られているリンクの、別の Ajax でサーバと通信してダウンロードを監視する方法、もう一つはダウンロードしたいファイルの一部をバイト配列で返す API を作り、それを JavaScript から繰り返し呼び出しながら最後に data スキームを使ってダウンロードダイアログを出す方法です。ただしこの方法はデータ全てがメモリ上に乗ってしまうので大きいファイルだとブラウザが反応しなくなる可能性があります。 つまり何を言っているのかというと、やらない方が良いです。 と言っては見たものの、回答を書いてみました。 ダウンロードの進捗プログレスバー実装は可能か