Mozilla Flux

Mozilla関係の情報に特化したブログです。

Webブラウザの動作を速いと「感じさせる」ための工夫

MozillaWikiにFirefoxのUIチームが『Perceived Performance』というページを作っている。Firefox.nextの体感速度を引き上げるためのアイデアをまとめたもので、検討中の項目にすぎないとはいえ、どれも採用される可能性のあるものばかりだ。そこで、現在挙がっているアイデアを紹介しておきたい。

  • 読み込まれないページのタイムアウトを早める。
  • 再起動時のデフォルトとして、現在セッションの復元で使用しているメニューを表示させる(メッセージなどは変更して)。
  • メモリ使用量を監視し、たくさんのタブを開きすぎているときは警告する。
  • システムトレイに常駐させる機能(Mozilla Suiteにあったものを復活)。
  • スロバーの動きを速くする。
  • Mac OS X版のスクロールモデルをWindows版とLinux版にも実装する(Bug 462809)。
  • リアルタイム戦略ゲームのスタイルのスクロールボックスをコンテンツ領域で使用する。それによって、マウスを動かすだけでページ内を移動できる。
  • 戻る・進む処理時のスムーズなアニメーション。ごくわずかなフェードや枠など。
  • 何もないところでクリックすると表示されるナビゲーションメニュー。項目にマウスカーソルを合わせるだけでアクションを発行する(モックアップ)。
  • 読み込みに時間がかかる場合、ビジュアル上の変化を増やす。たとえば、コンテンツ領域の中央に、大きなすかし状のスロバーを表示させる。
  • 検索のためだけにFirefoxをいったん閉じてから再度開くというユーザーのために、Firefox終了後もしばらく動作を継続させる。(スタートページの検索フィールドは知っているが、検索バー、ロケーションバー、ホームボタンなどは知らないユーザーが存在する。)
  • ロケーションバーの下に1ピクセル刻みのプログレスバーを付け、処理内容と進行状況を表示。
  • スマートロケーションバーの最初の結果にアクセスするために、ユーザが下矢印キーを押さなくてもいいようにする(Bug 410837)。
  • ロケーションバーに最初からフォーカスを置き、特定のページへ移動する前にユーザー自らフォーカスを設定しなくていいようにする。
  • キャッシュを利用して素早くページを表示しておき、ネットから該当ページを読み込んで準備ができたら、そちらに移行する。また、フォームフィールドをハイライトさせたグレーアウト版のキャッシュページを表示し、ユーザーに情報を再送信したいかどうか尋ねる。
  • frecency(訪問頻度や時期から算出)や適応的学習の手法を用いて、ユーザーが訪問するであろうと予想されるWebページをあらかじめ読み込む。
  • パスワードマネージャを拡張して、自動ログインを可能にする。
  • アップデートのインストールをバックグラウンドのプロセスで行うことで、次回起動時の所要時間に影響を与えないようにする。
  • 起動時に最前面のタブを真っ先に読み込む(Bug 496458)。
  • 進捗スピナー(スロバー)は200 - 300ミリ秒経過するまで表示しない(現在のように直ちに表示すると待たされる感を与えるため)。
  • 新規タブを作成したときに色を変える。
  • 起動時の処理順序の見直し。遅延処理が可能なものは後回しに。
  • いくつかのタブの読み込みが遅いときのタブの切り替え。
  • 履歴の削除に関して、削除したらすぐに一覧から消えるようにし、データベースからの削除はその後行う。
  • 他の非同期タスクよりも先にスマートロケーションバーの読み込みを行う。バーがフリーズしたような印象を避けられる。
  • 上記タブ切り替えと同様に、特別重いページを読み込み中もタブの切替えができるようにする。
  • エラーページをより親切なものに。冷たくて露骨なイメージを持たれないため。
  • ページ読み込み中にステータスバーに表示される情報が多すぎるので減らす。

本質的なものから小手先のものまで、興味深い案が並んでいるが、Webページの先読みは物議を醸しそうだ。また、アップデートの適用をバックグラウンドで行うのは、「中断ゼロ」のアップデートという方針に沿うものの、実装は容易ではないだろう。あと、ページナビゲーション機能は、便利そうだがジェスチャ系のアドオンとバッティングしないか心配だ。