皆さん,こんにちは。本連載は本年に入って今回で2回目ですが,実際には年が明けてから書いている原稿は今回が初めてです。いまさらという感じですが,改めまして,明けましておめでとうございます。

 さて,今回はページの応答時間について考えてみることにします。ページの応答時間とは,利用者がリンクをクリックしたり,URLをブラウザのアドレス欄に入力してから,実際にページのコンテンツがすべて表示されるまでにどれくらいかかるか,ということです。

8秒ルールをご存じですか

 まずは昔話からはじめます。皆さんは「8秒ルール」という,かつてよく使われていた言葉をご存じでしょうか。これは1999年にZona Research社というアメリカの調査会社がまとめた報告書の中に,「ECサイトのページの応答に8秒以上かかると,訪問者の1/3は利用するのをやめてしまう」と書かれていたことに基づいたもので,これ以上利用者を待たせてしまうサイトはダメだ,ということを示したルールです。

 しかしこのルール,もう8年も前に言われていたものです。1999年というと,一般家庭ではISDNでの接続が限界で(ISDNって当時はすごく速くて,SMAPがISDNで高速なインターネットを,なんてCMをやっていたんですから,時代は変わるものですよね),8秒ルールも「14400bpsのモデム」で接続していることが前提となっています。

 その時代に比べるとインターネットの接続速度は劇的に向上しています。当時よりもずっとリッチなコンテンツを提供できるようになってはいますが,利用者もすぐにページが表示されるのになれてきてしまっているので,ページのアクセスに8秒なんてとてもがまんしてくれなくなっている気もします。

 とにかく,目的の情報にアクセスするために,長い時間待たされてしまうというのは,利用者にとっては苦痛です。したがって,情報が画面に表示されるまでの時間を少しでも短くする,というのはユーザビリティにとって非常に重要なことだといえるでしょう。

 なぜ,今回こんな話題を取り上げたのかといえば,「Yahoo! User Interface Blog」というブログに掲載された,「Performance Research, Part 1: What the 80/20 Rule Tells Us about Reducing HTTP Requests」という記事を読んだからです。この記事では,ページの応答時間について,実際にYahoo!のトップページの応答時間などを調査したうえで,考察しています。

 それによれば,多くのWebページの応答時間には「80対20の法則」と呼ばれる法則が成り立っているそうです。80対20の法則とは,イタリアの経済学者のヴィルフレド・パレート氏によって見出された法則で,「パレートの法則」とも呼ばれています。もともとは,「社会における富の80%は,20%の富裕層が所有している」といった社会の仕組みや現象について述べた法則です。その後これが様々な現象に当てはまることが指摘されています。

 技術系の話題でも「ソフトウエアの開発工数の80%は20%のコードにかけられる」といった使われ方をしています。80や20といった数値は厳密なものではなくなっていますが,つまりは物事の重要度というのは均等でなくて,ある少ない部分が,全体の大部分を占めている,というような意味合いですよね。

 で,Webページの応答時間の話になりますが,上記の記事が述べているのは,「ページの重要のコンテンツはデータ量全体の2割以下の時間で読み込まれている」ということです。ここでいう「重要なコンテンツ」とは,HTMLドキュメントのことです。多くのWebページにおいて,最も重要なのはHTMLに書かれたテキスト・データであり,HTMLドキュメントの読み込みは,ページの表示が完了するまでの時間の20%以下の時間で終わっている場合が多い,ということです。

 最近のWebサイトは,HTMLデータのみで構成されたものはほとんど無くて,画像やCSSファイル,JavaScriptなどのスクリプト・ファイルなど様々なものを必要とします。残りの80%はこうした,重要度から言えばHTMLデータほどは重要でない(パレートの法則的に言えば重要度が2割くらいの)データの読み込みにかかっている,というわけです。

 したがって,ページの応答時間を短くするためには,これらの80%のデータの読み込みを,いかに高速化するのか,を考えなければいけない,というわけです。