- 2010-01-25 (月)
- UI(インターフェース)
Googleもスマートフォンに参入、ノートPCが完全に主流になるなど、ブロードバンドから逆に回線の「低速化」が起こっています。
参考: 今だからこそ、「軽量なウェブサイト」を作ることが重要、というお話
また、GoogleはWebの表示速度をPageRankに加味することを検討中であることを明言しています。
ただ、そうは言ったものの、ちゃんと実装しないと話しにならない訳で・・(大汗
細かいことでもちゃんと積み重ねて行かねばと。
というわけで、軽快なサイトを実装するためのTipsを自分のサイトで使ったのを備忘録的にここにも書いておきたいと思います。
まずはまとめ記事から
原則を押さえてから、細かいところに行った方が効率がよいかな、と思います。
最適化を行うための観点が簡潔にまとまっていて、高速化チェック項目として有効です。
具体的な方法もいくつか示してくれているので、これだけでもちょっとしたインパクトがありそう。
- 画像は最適化してから使え!
- 画像はサイズを指定せよ!
- HTTPリクエストは最小にせよ!
- CSSセレクターは短く最適化せよ!
- CSSは上に、JavaScriptは下に『まとめて』記述せよ!
- プロファイリングツールを使いこなせ!
フロントエンドの実装の14のティップスやツール紹介されています。
一つ一つの実行方法までは書いていませんが、上のASCIIよりも細分化されているので、より丁寧にToDoへ落とすことができそうです。
- HTTPリクエストを減らす
- コンテンツデリバリーネットワーク(CDN)を使う
- Expiresヘッダを追加する
- コンポーネントをgzip圧縮する
- スタイルシートを先頭に配置する
- スクリプトを末尾に配置する
- CSS expressionの使用を避ける
- JavaScriptとCSSを外部ファイルに記述する
- DNSルックアップを減らす
- JavaScriptのサイズを小さくする
- リダイレクトを避ける
- スクリプトの重複を排除する
- ETagの設定を変更する
- Ajaxをキャッシュ可能にする
Expiresヘッダなんかは、やれていない人も多いのではないでしょうか。
元は幸いなことに、下サイトで細かい解説まで書かれています。どうやら元はYahoo! developer netoworkの内容みたいですね。
→ Webサイトの高速化 フロントエンドのパフォーマンスの重要性
次はメジャー企業の具体例
国内代表選手はYahoo! News
かなり他のサイトにも使える実例で、かつ高速化のインパクトの大きさを理解できます。
システムを全面的に見直し、記事1本を表示するのにかかる時間を1秒以内に短縮しました。従来は、平均3~5秒だったそうです。
PC Online 「Yahoo!ニュース」の表示速度が3~5倍に、そのからくりは……
Yahoo Newsが行ったのは
- 複数枚の画像を1枚にまとめる「CSS Sprite」の採用
- 画像ファイルの形式の変更(Gifから8bit-PNGへ)
- PNG形式の制御情報(チャンクと呼ぶ)の削除
例えば、写真有りのニュースにつけるアイコンと「New」のファイルは、以下のように1つにまとめられています。
(これで1つの画像)
Googleのようにサーバーのレスポンスを上げる方法も確かに重要ですが、フロントエンドでもこれだけのインパクトが出せる、ということは知っておいて損はないでしょう。
Youtubeでも採用していますね。
CSS Spriteについては、運用サイトで早速実装してみましたが、結構簡単かつ確実に結果が出るのがよいですね。
CSS Spriteの具体的な実装方法
実装するだけでなく、画像を背景化するためユーザビリティ・アクセシビリティ面での注意点も理解する必要があるのが、その他の対策とは異なる点です。
王者、Googleの高速化対策
検索結果を始めとするGoogleのレスポンスの速さは誰もが体験していますが、そこにもWebの高速表示のためのノウハウがつぎ込まれています。
スピードをもたらしている要素の一つが、同社の徹底的に簡素化された設計と大規模なサーバファームだが、ページのロードを高速化するための果てしない最適化努力も忘れてはならない。 (TechCrunch)
Googleが使用しているのは、Page Speedというツール。Page Speedは画像を自動的に圧縮してWebサイト上ですぐに使えるようにするほか、ページの表示に使われていないCSSやJavaScriptを見つけてくれます。
不要なファイルを一掃することでページのロードを短縮できるツールですね。
→ Page Speedのページ
![page-speed[1] page-speed[1]](http://www.fallinstar.org/WindowsLiveWriter/WebTips_A186/page-speed%5B1%5D_9d520dd3-dbfe-4971-ab6e-94a9ef796ea9.png)
※Yahoo(US)のFirefox用プラグインである、YSlowも同じような機能を持っているようです。(未使用)
言ってしまえば極めて地味な作業なわけですが、その積み重ねがGoogleのあの快適さを支えているんだなと改めて実感。
書籍で学ぶなら
おなじみオライリーから、ハイパフォーマンスWebサイトが出版されていて、これが割とお手ごろかなと。
まとめでは具体的な方法まで書かれていないことまで詳細に詰めてあります。
オライリージャパン
売り上げランキング: 30185

仕事で作る人、趣味で作る人、両方にためになります
フロントエンド方面の最適化手法がわかる本
目からウロコでした。
これからのフロントエンド・エンジニアリングの重要性
簡単なWebサイトの高速化 ただ、サーバー・DB側の最適化は色々と書籍にまとまっている割に、フロントエンドの実装はまだまだこれからといった印象です。
本もその他にはあまりめぼしいものは見当たらず。
この後、PNG8も試す予定なので、その結果も実際ここで紹介したいとおもいます。
■ 関連記事
最近のエントリー
Comments:1
- 451f 2010-03-17 (水) 19:06
-
インターネットを巡っていてこちらにたどり着きました。
とても興味深く拝見しました。
また参ります。


RSS Feed