uxを向上させる サイト高速化テクニック

34
UXを向上させる サイト高速化テクニック 泰昌平 (@stai0823)

Upload: shohei-tai

Post on 15-Apr-2017

10.693 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: UXを向上させる サイト高速化テクニック

UXを向上させるサイト高速化テクニック

泰昌平 (@stai0823)

Page 2: UXを向上させる サイト高速化テクニック

自己紹介

泰 昌平ファンチーム株式会社 Webエンジニア

・CakePHPとPhalconをやっています

・フロントのjavascriptが大好物

・ダーツとバイクが好き

Page 3: UXを向上させる サイト高速化テクニック

今日のお話

Page 4: UXを向上させる サイト高速化テクニック

「UXを向上させる高速化」

Page 5: UXを向上させる サイト高速化テクニック

今日お話しすることは

・全体のリクエスト、サイズを減らすとかいう話ではない。

・必ずしもGTmetrixのスコアが上がるような施策とは限らない。

・ユーザに速度面でのストレスを軽減するテクニック。

ユーザの「体感速度」を高める

Page 6: UXを向上させる サイト高速化テクニック

ユーザの「体感速度」を向上させるキーワード

「遅延ロード」と「プリロード」

Page 7: UXを向上させる サイト高速化テクニック

キーワード1

「遅延ロード」

Page 8: UXを向上させる サイト高速化テクニック

・読み込みに時間がかかったり、レンダリングブロックの原因と

なるリソースは遅延ロードする。

・jsを動的に追加したり、Ajaxで後から読み込ませたり・・。

遅延ロード

→読み込むリソースに手を加えず、

ユーザの体感速度を向上させることができる。

Page 9: UXを向上させる サイト高速化テクニック
Page 10: UXを向上させる サイト高速化テクニック

遅延ロードが有効な事例

Page 11: UXを向上させる サイト高速化テクニック

https://teratail.com/questions/9137

Page 12: UXを向上させる サイト高速化テクニック

ベストアンサー

Page 13: UXを向上させる サイト高速化テクニック

・「jQuery Lazy Load」や「Unveil.js」で遅延ロードは

 比較的簡単に実装できる。

・ページ読み込み時はリクエスト数がかなり削減できるので

GTmetrixのスコア改善にも繋がる

画像の遅延ロード

Page 14: UXを向上させる サイト高速化テクニック

キーワード2

「プリロード」

Page 15: UXを向上させる サイト高速化テクニック

・読み込みに時間がかかったり、レンダリングブロックの原因と

なるリソースは先に読み込んでしまう。

・ユーザの行動を予測し、事前に処理を行う。

プリロード

→実装次第で遅延ロードよりも高速化を図ることができ、

ユーザの体感速度を向上に繋がる。

Page 16: UXを向上させる サイト高速化テクニック

プリロードを実現する方法をいくつかご紹介します。

Page 17: UXを向上させる サイト高速化テクニック

サーバへのプリコネクト- preconnect -

Page 18: UXを向上させる サイト高速化テクニック

通信先へのプリコネクト

・読み込み先のサーバへ事前に接続しに行く。

・HEADタグの上部にpreconnect用のタグを埋め込む。

・事前に名前解決を行う「dns-prefech」のもう一歩先!

Page 19: UXを向上させる サイト高速化テクニック

<head> <meta charset="UTF-8"> <link rel="preconnect" href="http://www.google-analytics.com"> <link rel="preconnect" href="http://www.googletagmanager.com"> <title>プリコネクト</title></head>

書き方

Page 20: UXを向上させる サイト高速化テクニック

リソースを複数ドメインから読み込んでいる場合に効果的。

Page 21: UXを向上させる サイト高速化テクニック

リソースのプリフェッチ- prefetch -

Page 22: UXを向上させる サイト高速化テクニック

リソースのプリフェッチ

・次のページで利用するリソースを事前に読み込むことができる。

・CSSやJS、画像ファイルなど静的なリソースを読み込める。

・ただし、ユーザの行動を予測し予め設定する必要がある。

Page 23: UXを向上させる サイト高速化テクニック

<head> <meta charset="UTF-8"> <!-- 次のページで使用する画像やCSSなどを事前に読み込ませる --> <link rel="prefetch" href="http://example.com/css/style.css"> <link rel="prefetch" href="http://example.com/logo.png"> <title>プリフェッチ</title></head>

書き方

Page 24: UXを向上させる サイト高速化テクニック

画像やWebフォントも事前に読み込めるので表示のもたつきが軽減されます。

Page 25: UXを向上させる サイト高速化テクニック

ページのプリレンダリング- prerender -

Page 26: UXを向上させる サイト高速化テクニック

ページのプリレンダリング

・指定したページを事前に読み込み、レンダリングする。

・事前読み込みされたページへ遷移すると一瞬で表示される。

・ただし、ユーザの行動を予測し予め設定する必要がある。

Page 27: UXを向上させる サイト高速化テクニック

<head> <meta charset="UTF-8"> <link rel="prerender" href="http://example.com/nextpage"> <title>prerenderによる事前レンダリング</title></head>

書き方

Page 28: UXを向上させる サイト高速化テクニック

Chromeのタスクマネージャー

Page 29: UXを向上させる サイト高速化テクニック

ユーザの行動が予測できる導線であればAjaxやPjaxに負けない

パフォーマンスを引き出せます。

Page 30: UXを向上させる サイト高速化テクニック

プリレンダリングを使う上での注意

Page 31: UXを向上させる サイト高速化テクニック

・バックグラウンドで通信とレンダリングが行われるため、

クライアント・サーバ両方に負荷がかかる。

・むやみやたらに使っても、事前レンダリングされたページに遷移しないと意味が無い。

使いすぎは非常に危険

Page 32: UXを向上させる サイト高速化テクニック

ここまでユーザの「体感速度」を向上させる高速化施策をご紹介しました。

Page 33: UXを向上させる サイト高速化テクニック

遅延ロードとプリロードを上手く使って快適な

Webサイトを作っていきましょう

Page 34: UXを向上させる サイト高速化テクニック

ご清聴ありがとうございました