High Performance Web Design

Post on 27-Jan-2015

110 views 3 download

Tags:

description

デザインから考えるハイパフォーマンスWebサイト

transcript

High Performance Web Design~デザインから考えるハイパフォーマンスWebサイト ~

Koji IshimotoWeb Designer

October 24, 2009CSS Nite in ISHIKAWA

Twitter:#CSSNiteIshikawa

Blog : MOL

Twitter : t32k

1. パフォーマンスって?

2. なぜパフォーマンスなの?

3. どうやって計測するの?

4. 対策はどうすればよいの?

5. まとめ

6. 質疑応答

Agenda本日のアジェンダ

1. What’s High Performance?

Essential Knowledge for Frontend Engineers

80:20Browser : Server

2. Why High Performance?

0.5秒遅くなると、検索数が20%減少する

+500ms 20% fewer searches

0.1秒遅くなると、売り上げが1%減少する

+100ms 1% drop in sales

一般的に表示スピードが1秒遅くなると、

PVは11%、CVは7%、顧客満足度は16%ダウンする

Page views

Conversions

Customer satisfaction 16%

7%

11%

> 心理的・感情的な違和感を感じないのは0.1秒まで

> 思考の流れが妨げられないのは1秒まで

> 注意力を維持できる限界の時間は10秒まで

Jakob Nielson

Response Times反応時間の3つの重要限界

Time is Money

3. How do you measure it?

Performance Toolsパフォーマンスツール

> Packet Sniffers パケットスニファ

> Performance Analyzers パフォーマンスアナライザ

Packet Sniffers

FiddlerRuns on Microsoft Windows

Firebug Net PanelFirefox add-on

Web Inspector Resources PanelSafari’s Web Inspector

Performance Analyzers

Page SpeedFirefox add-on

YSlow for FirebugFirefox add-on

Grade

Components

Statistics

Grade (score) Components Weights

Yahoo! C (77) 28 889.4k

Google A (97) 4 22.9k

YouTube C (71) 24 178.0k

Rakuten E (55) 111 940.2k

Livedoor D (68) 71 367.1k

Goo E (59) 61 275.8k

Amazon D (67) 71 399.2k

2009/10/14 YSlow Ruleset applied: Classic(V1)

YSlow Grade

1.   Firebugをインストールする

2.   YSlowをインストールする

3. 計測したいページを表示する

4. ステータスバーのYSlowアイコンをクリック

5. Run Test ボタンを押す

6. 評価内容をチェックする

以下、3 ‒ 6の繰り返し

How to UseYSlowの使い方

You can’t improve what you can’t measure

4. What should I do to improve?

1. HTTPリクエストを減らす2. CDNを使う3. Expiresヘッダを設定する4. コンポーネントをgzipする5. スタイルシートは先頭に置く6. スクリプトは最後に置く7. CSS expressionの使用を控える8. JavaScriptとCSSは外部ファイル化する9. DNSルックアップを減らす10. JavaScriptを縮小化する11. リダイレクトを避ける12. スクリプトを重複させない13. ETagの設定を変更する14. AJAXをキャッシュ可能にする

14 Steps to Faster Loading Web Sites高速サイトを実現するための14のルール

1. バッファは早期にフラッシュする

2. AJAXリクエストにGETを使う

3. コンポーネントのポストロード

4. コンテンツのプレロード

5. DOM要素数の削減

6. ドメインをまたがってコンテンツを分離

7. iframeの数を最小化

8. 404を作ってしまわない

9. クッキーサイズを最小化

10. コンポーネントに対してクッキーフリードメインを使う

1. DOMアクセスを最小化

2. かしこいイベントハンドラを用意

3. @importよりもlinkを使う

4. フィルタの使用は避ける

5. 画像を最適化

6. CSS分割を最適化

7. HTMLにおいて画像をスケールさせない

8. faviconを小さく作成しさらにキャッシュを有効にする

9. 25KB以下にコンポーネントをキープする

10. コンポーネントを複数のドキュメントへパックする

20 More Best PracticesYSlowでA評価後の20のルール

1. ブラウザのキャッシュを活用

2. プロキシのキャッシュを活用

3. DNSルックアップを減らす

4. リダイレクトを減らす

5. 外部JavaScriptはまとめる

6. 外部CSSはまとめる

7. スタイルシートとスクリプトを最適化

8. 異なるホストから並列ダウンロード

9. クッキーのサイズを減らす

10. クッキーレスのドメインからスタティックなリソースをサポート

11. gzipでリソースを圧縮

12. 使用していないCSSは取り除く

13. JavaScriptのロードの遅延

14. JavaScriptの縮小化

15. CSSの縮小化

16. 画像の最適化

17. 一貫したURLからリソースを提供

18. CSSのセレクタは効率よく使用

19. CSS expressionは避ける

20. CSSはheadに配置

21. 画像のサイズ指定

Performance Best Practicesウェブパフォーマンスベストプラクティス

Too Many!

HTTPリクエストを減らす

Make Fewer HTTP Requests

>  Images  画像

>  Scripts  スクリプト

>  Stylesheets  スタイルシート  

>  Flash  フラッシュ

What’s HTTP Requests?HTTPリクエストとは?

> Image Maps イメージマップ

> CSS Sprites CSSスプライト

> Inline Images インライン画像

> Combined Scripts and Stylesheets スクリプトおよびスタイルシートの結合

Make Fewer HTTP RequestsHTTPリクエストを減らす

アメリカのNASAは、宇宙飛行士を最初に宇宙に送り込んだとき、無重力状態ではボールペンが書けないことを発見した。

これではボールペンを持って行っても役に立たない。

NASAの科学者たちはこの問題に立ち向かうべく、10年の歳月と120億ドルの開発費をかけて研究を重ねた。

その結果ついに、無重力でも上下逆にしても水の中でも氷点下でも摂氏300度でも、どんな状況下でもどんな表面にでも書けるボールペンを開発した!!

一方、ロシアは鉛筆を使った。

Space Pen

Design Solutions

1.目立たせたい!

2.多機能にしたい!

3.とりあえず、全部載せたい!

5 Planes ModelJesse James Garrett

1.目立たせたい!

2.多機能にしたい!

3.とりあえず、全部載せたい!

表層 ‒ Surface

Visual Design

骨格 - Skeleton

Interface Design

Navigation Design

Information Design

Feng-GUI V2Heatmap

+116% +24.4%Original

CSS Nite Banner Test2009/09/07 -2009/10/23 test:3271 conversion:71

COOKPAD Premium Services出典:CSS Nite in Ginza, Vol.32 成果を上げるユーザ中心ウェブサイト戦略 遠藤直紀

バナー画像の3倍の効果を上げる

 Design is Not Decoration

1.目立たせたい!

2.多機能にしたい!

3.とりあえず、全部載せたい!

骨格 - Skeleton Interface Design Navigation Design Information Design

構造 - Structure Interaction Design Information

Architecture

要件 - Scope

Functional Specifications

Content Requirements

AJAXライブラリの普及

SpryExt JS

DojojQueryYahoo! User Interface Library

PrototypeMochiKitMooTools

Google Web Toolkit

script.aculo.us

Rich Interaction

1. Google Analytics

2. Google Website Optimizer

3. User Heat

.

.

.

Web Analyticsウェブ解析

“何かを追加するのと、価値を追加するのはまったく別のことです

我々の仕事は価値を提供しているでしょうか。ときとして価値を追加することは何かを取り去ることでもあります。

フライドポテトにケチャップをかけすぎれば台無しになります。

価値とは加えることと取り去ることのバランスなのです。”

37 Signalsが仕事中に自問していること

Know Your Audience

1.目立たせたい!

2.多機能にしたい!

3.とりあえず、全部載せたい!

要件 - Scope

Functional Specifications

Content Requirements

戦略 - Strategy

User Needs

Site Objectives

長すぎるページ

Visitor Attention and Web Page ExposureClickTale Scrolling Research Report V2.0 - Part 2

> コンピュータ画面で読むのは目が疲れる。

> ウェブはユーザ主導型のメディアである。

> 他の何億ものページと競争しなくてはならない。

> 現代生活はあわただしい。

Jakob Nielson

Why Web Users Scan Instead of Readなぜウェブユーザは流し読みするのか

決断に要する時間は、選択肢が増えるほど長くなる。ヒック・ハイマンの法則

iPod Experience

1ページ 1テーマ 1スクリーン

One Page One Theme One Screen

Know What You Want

まとめ

5. Conclusion

Clear Objectives明確な目的

Consistent Design一貫性のあるデザイン

Clean Code簡潔なコード

High Performance Site!ハイパフォーマンスサイト

Thank you!

• http://warikiru.blogspot.com/2009/05/yslow-20-release.html

• http://warikiru.blogspot.com/2009/03/web-site-performance-seminar-at-gomez.html

• http://warikiru.blogspot.com/2008/12/design-fast-websites-dont-blame-rounded.html

• http://warikiru.blogspot.com/2008/12/understanding-progressive-enhancement.html

• http://warikiru.blogspot.com/2008/09/visitor-attention-and-web-page-exposure.html

• http://www.ideaxidea.com/archives/2008/03/37_signals.html

• http://journal.mycom.co.jp/news/2008/03/27/016/index.html

• http://coliss.com/articles/build-websites/operations/web-performance-best-practices-from-google.html

• ハイパフォーマンスWebサイト —高速サイトを実現する14のルール

• デザイニング・ウェブナビゲーション —最適なユーザーエクスペリエンスの設計

• ウェブ戦略としての「ユーザーエクスペリエンス」—5つの段階で考えるユーザー中心デザイン

• Design rule index—デザイン、新・100の法則

• Even Faster Web Sites: Essential Knowledge for Frontend Engineers

See Also

• http://www.flickr.com/photos/kenhurlford/986744061/

• http://www.flickr.com/photos/generated/99991779/

• http://www.flickr.com/photos/comphacker/3177112563/

• http://www.flickr.com/photos/jeffbelmonte/8228640/

• http://www.flickr.com/photos/pinksherbet/3206805049/

• http://www.flickr.com/photos/eflon/3465042138/

• http://www.flickr.com/photos/mikebaird/332877581/

• http://www.flickr.com/photos/dm-set/3493848714/

• http://www.flickr.com/photos/runtcake/2606448656/

• http://www.flickr.com/photos/jking89/3291408977/

• http://www.flickr.com/photos/wrote/2340192847/

• http://www.flickr.com/photos/qmnonic/266203795/

• http://www.flickr.com/photos/aubergene/380451857/

• http://www.flickr.com/photos/wolfgangstaudt/2051232504/

• http://www.flickr.com/photos/wwworks/1384954600/

• http://www.flickr.com/photos/nicole_hugo/3478088864/

• http://www.flickr.com/photos/scragz/2718035962/

• http://www.flickr.com/photos/elgrandee/2458845042/

• http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Jakob_Nielsen_1.jpg

Credits