Web Technorogies

Usability について  - Decreasing Download Time (2/3)

Previous | 1 2 3 4 5 6 7 8 | Next 

前回に引き続きダウンロード時間を減らす方法です。

  • クライアントスクリプトを使用する

    ダウンロード時間を減らす少し高度なテクニックとしてクライアントスクリプトを利用する方法があります。クライアントスクリプトといっても、スクリプトを覚えたての人がよく作る文字が移動したりするアニメーションを作りましょうということではありません。(言われなくても分ってるって!?)

    スクリプトで何をするかというと、各ページの共通要素をスクリプトで出力するようにして、更にそのスクリプトを外部ファイルにして HTML 内でインクルードするようにします。こうすることによって何がおいしいのか?

    Web ページのデザインを統一すると通常、ページのタイトル部分やメニュー部分は全く同じ HTML ソースになりますよね?この部分が無駄だなぁ、と思ったことはありませんか?ユーザーがページを移動するたびに HTML ファイル内の同じコードが毎回ダウンロードされているのですから...

    クライアントスクリプトをうまく使うことによって、前回取り上げたクライアントキャッシュが利用できるのです。ページのデザインを統一すると共通要素となる画像ファイルがクライアントにキャッシュされて、ダウンロード時間が減らすことが出来る、という話しをしたかと思いますが、今回の場合は更にそれを推し進めてページ間で共通となる HTML ソースもキャッシュしようという考えです。(正確には HTML そのものをキャッシュしているわけではありません。結果として HTML がキャッシュされているのと同じ状態になります。)

    「クライアントスクリプトは重くなるから使わない」という人がいますが、はっきり言って間違いです。いや、正確に言えば重くなるスクリプトもあります(アニメーションなど)。要するに使い方を間違えている訳です。

    現在の CPU は遅いものでも数百MHz、ハイエンドのものは既にGHz に突入しようとしています。100MHz の CPU は単純計算で、1秒間に 1億の CPU命令をこなしています。このほとんど(90%以上)は通常ユーザーの入力待ちや処理待ちに費やされています。さらに HDD(Hard Disk Drive)の転送速度も数十Mbps という速度で、エントリーモデルでも数十GB という容量の HDD が付いている状況です。それに対して一般家庭の通信環境は非常に貧弱です。通常のモデムで 50Kbps 以下、ISDN でさえも 64Kbps(もしくは128Kbps)。フロッピーディスクが約 100Kbps ということからも、いかに通信速度が遅いか分るでしょう。

    この、通信速度に対してパソコンの速度が極端に速いという現状でユーザー側のコンピュータのパワーを利用しない手はありません。めったに変更されないページのヘッダ部分やメニュー部分はユーザーの HDD 上に置いて、HDD 上から読み出して描画した方が、ダウンロードするよりは速くなります。更に、一度 HDD から読み出されるとメモリ上にキャッシュされる為、更に早くなります。

次回は、具体的にサンプルコードを交えてクライアントスクリプトを使用した方法を説明したいと思います。
続く...

Previous | 1 2 3 4 5 6 7 8 | Next