サーバー側での進捗状況の取得方法について
いわゆる「動画投稿サイトのサーバーサイドエンコーディング」のような長時間の進捗を把握する方法でしょうか。
Browser Server
| :
+------->+
: | << ここの進捗把握したい?
+<-------+
| :
ご参考にされている方法は upload
イベントについての進捗表示になります
(上記、シーケンス図における (Browser)+------->+(Server)
の矢線部分)。
サーバー側の進捗確認は、意図的な通信が必要です。
- Ajax で サーバー側の進捗状況を返却するAPIを実装する。
- WebSocket を利用してサーバー側の進捗状況を取得するなど。
axiosを用いて
axiosだけで実現するには前者になろうかと思います。
アップロードの伴わない事例
サーバー側で蓄積されたデータをCSVに変換してダウンロードさせる事例では
「10分後に再度アクセスしてみて」といったアナウンスで対応します。
これは「同一画面にユーザを縛り付けない」という、ユーザ体験上の配慮です。
Browser Server
| :
+------->+ << ブラウザ「サーバー側でやっといて!
+<-------+ << サーバー「10分後にまた来な
: :
+------->+ << ブラウザ「できた?
+<-------+ << サーバー「できてるぜ!
| :
参考にされているサイトや修正依頼コメント欄で案内されているサイトのように
「アップロード時(通信経路を情報が流れているタイミング)に限って進捗表示する」という方法で十分に思います。