質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

8643閲覧

ブラウザから、ファイルをダウンロードしている途中で、プログレスバーを実装したい。完了したら、プログレスバーを閉じたい。

itoaitoai

総合スコア13

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2017/06/22 04:21

###前提・実現したいこと
javaScript/HTML/CSSを利用しております。
目的は、ブラウザから、ファイルをダウンロードしている途中で、プログレスバーを実装したい。完了したら、プログレスバーを閉じたい。

###発生している問題・エラーメッセージ

現状は、システム上、サイズの大きいファイル(ログ)があるため、 ダウンロードに時間(10~30秒)がかかり、画面に何も出ないので、 改良したい。 問題は、ダウンロードに時間がかかるというのがことではないです。 対応は、サイズの大きいファイルは、小さくする対応等ではないです。

###試したこと
・プログレスバーの実装
javaScriptを用いたサンプルが、web上に挙がっていましたので、どれかを利用したいと思います。

・ダウンロードが完了した場合の判断
javaScriptの処理で、判断ができるのかが、解りません。
実装可能かもわかりません。
こちらが問題です。

・javascriptで実装が可能か。
他の言語で、実装可能かもわかりません。
こちらが問題です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

きっと低評価されると思いますが、一応お約束なので
そんなに大きいファイルならftpなどファイル転送系の処理にするべきです。
またログファイルであればローテートしたタイミングで所定のサーバーに
ftp putしてもらうなどが現実的な運用方法になります。
お役にはたたないと思いますが参考までに

投稿2017/06/22 08:42

yambejp

総合スコア116466

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itoaitoai

2017/06/22 10:33

ご教授頂き、お時間を頂き、誠にありがとうございます。勉強不足であり、申し訳ございません。運用という気付きを得ることが出来ました。また、実装に関して、私の勝手な思い込みの可能性もある気がしてきましたので、相談して、納得のいく運用と見つけたいと思います。今後、みなさまのようなエンジニアになれるように、一所懸命努力し、日々精進していきたいと思います。
guest

0

ベストアンサー

無茶をすればそれっぽい事は出来なくないですが、ブラウザ互換が無かったりブラウザの仕様変更により動かなくなったりします。

一つは x_x さんが貼ってくれたページに貼られているリンクの、別の Ajax でサーバと通信してダウンロードを監視する方法、もう一つはダウンロードしたいファイルの一部をバイト配列で返す API を作り、それを JavaScript から繰り返し呼び出しながら最後に data スキームを使ってダウンロードダイアログを出す方法です。ただしこの方法はデータ全てがメモリ上に乗ってしまうので大きいファイルだとブラウザが反応しなくなる可能性があります。

つまり何を言っているのかというと、やらない方が良いです。

と言っては見たものの、回答を書いてみました。

ダウンロードの進捗プログレスバー実装は可能か

投稿2017/06/22 04:50

編集2017/06/22 07:16
mattn

総合スコア5030

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itoaitoai

2017/06/22 10:25

ご教授頂き、ありがとうございます。素晴らしいです。お時間頂き、ご丁寧に具体的に回答を頂き、誠にありがとうございます。勉強不足であり、申し訳ございません。運用と考えるとともに、試してみたいと思います。今後、みなさまのようなエンジニアになれるように、一所懸命努力し、日々精進していきたいと思います。
guest

0

過去に似たような質問があるようですね。

非同期実行される関数のコールバック
https://teratail.com/questions/19904

まあ、あまりおすすめしません。

投稿2017/06/22 04:36

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itoaitoai

2017/06/22 04:39

ご教授頂き、ありがとうございます。似たような質問が見つけられず、申し訳ございませんでした。拝見させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問