busy indicator

busy indicator

[140] navigate が開始してから停止するまでの間、 Webブラウザーは何らかの形で navigate 中であることやその進捗を表示するのが普通です。

[141] 90年代には、アドレスバーの横に Webブラウザーロゴなどを表示し、 navigate 中には簡単なアニメーションを表示するのが一般的でした。 状態バーを設けて進捗の度合いや処理内容を表示することもありました。

[143] 既定のマウスポインターが(裏側で)処理中を表すものに変化する実装もありました。

[142] 現在は小さなアイコン程度の簡潔な表示が一般的です。タブのボタン部分などに進捗度を表示することもあります。

[2] 固定の状態バーを表示しないのが一般的となった現在でも、 処理中状態の表示を画面下方に一時的に表示するWebブラウザーも多いようです。

[6] Webブラウザーは、利用者の不安を和らげるため、必要十分な情報の提供に努めるべきです。 例えば、一瞬で navigate が完了するのであれば、状態を表示しても読めず、 かえって利用者が驚いてしまうかもしれません。しかしファイルアップロード時など、 相当の時間がかかるときは、進捗状況を目立つように表示するべきかもしれません。

[5] 進捗度を正確な割合や残り時間として表示することは難しい場合が多いですが、 そうでなくても相対的な進捗をわかりやすく表示するべきと考えられます。 例えば「名前解決中」、「接続中」、「転送中」 のような表示が切り替わるだけだと、技術者以外の一般利用者には各段階がどの順番で発生するのかすら伝わらないかもしれません。


[231] こうした状態表示は、 navigate の他にも、

... といった状態では処理中と表示する実装もあるかもしれません。また実装方針や利用者の設定によっては、 その他の fetch の実行中も処理中として表示したいかもしれません。

[3] ただし XHR を利用するのが一般的となった現在、あらゆる fetch の実行中に表示すると、ほとんど常時表示中となってしまうこともありそうです。

関連

[4] 開発者ツールには、より詳細な fetch 等の進行状況の表示があるかもしれません。 busy indicator は一般利用者を対象とした簡易の状況表示です。

[7] アイドル状態も参照。

歴史

[8] 23508 – Browsers want to know when a page's scripts have finished 'loading', even if the scripts aren't delaying the 'load' event any more (e.g. they do computation on startup) () https://www.w3.org/Bugs/Public/show_bug.cgi?id=23508

[9] #Netscape Communicator 4 beta 2 Throbber ☆彡☆彡 🌙, , https://cat-in-136.github.io/2013/02/netscape-communicator-4-beta-2-throbber.html