Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UXを向上させる サイト高速化テクニック
Search
泰 昌平@ShoheiTai
December 10, 2015
Programming
0
100
UXを向上させる サイト高速化テクニック
第三回 集まっtail LT:5分
ユーザの体感速度を向上させるための、Webサイト高速化テクニックについて。UXに着目した高速化手法です。
泰 昌平@ShoheiTai
December 10, 2015
Tweet
Share
More Decks by 泰 昌平@ShoheiTai
See All by 泰 昌平@ShoheiTai
現地チームの心理的安全性から全く違う結論に行き着いた話
shoheitai
0
110
DX企業CTOとして考える技術への向き合い方
shoheitai
0
680
LT20回以上やって、やっと学んだLTの技術
shoheitai
1
110
WSOの現状とすすめかた
shoheitai
0
670
今こそ始めるWSO - Web高速化の現状と対策テクニック
shoheitai
2
810
“超効率化” で生き残る 2018 #innocafe
shoheitai
2
320
LTを続けてLT文化の素晴らしさを感じた話 #集まっtail
shoheitai
1
5.3k
Drupal8のConfigurationManagementで心が折れた話 #drupalstudy
shoheitai
1
560
もうこわくない!エンジニアを巻き込むコミュニケーション #PRLT
shoheitai
3
3k
Other Decks in Programming
See All in Programming
flutterkaigi_2024.pdf
kyoheig3
0
120
みんなでプロポーザルを書いてみた
yuriko1211
0
260
最新TCAキャッチアップ
0si43
0
140
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Contemporary Test Cases
maaretp
0
140
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
290
Jakarta EE meets AI
ivargrimstad
0
180
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.3k
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
330
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
Featured
See All Featured
Statistics for Hackers
jakevdp
796
220k
Code Reviewing Like a Champion
maltzj
520
39k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
A designer walks into a library…
pauljervisheath
204
24k
The Invisible Side of Design
smashingmag
298
50k
Adopting Sorbet at Scale
ufuk
73
9.1k
Designing for humans not robots
tammielis
250
25k
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
Typedesign – Prime Four
hannesfritz
40
2.4k
How GitHub (no longer) Works
holman
310
140k
GitHub's CSS Performance
jonrohan
1030
460k
Transcript
UXを向上させる サイト高速化テクニック 泰昌平 (@stai0823)
自己紹介 泰 昌平 ファンチーム株式会社 Webエンジニア ・CakePHPとPhalconをやっています ・フロントのjavascriptが大好物 ・ダーツとバイクが好き
今日のお話
「UXを向上させる高速化」
今日お話しすることは ・全体のリクエスト、サイズを減らすとかいう話ではない。 ・必ずしもGTmetrixのスコアが上がるような施策とは限らない。 ・ユーザに速度面でのストレスを軽減するテクニック。 ユーザの「体感速度」を高める
ユーザの「体感速度」を向上させるキーワード 「遅延ロード」と「プリロード」
キーワード1 「遅延ロード」
・読み込みに時間がかかったり、レンダリングブロックの原因と なるリソースは遅延ロードする。 ・jsを動的に追加したり、Ajaxで後から読み込ませたり・・。 遅延ロード →読み込むリソースに手を加えず、 ユーザの体感速度を向上させることができる。
None
遅延ロードが有効な事例
https://teratail.com/questions/9137
ベストアンサー
・「jQuery Lazy Load」や「Unveil.js」で遅延ロードは 比較的簡単に実装できる。 ・ページ読み込み時はリクエスト数がかなり削減できるので GTmetrixのスコア改善にも繋がる 画像の遅延ロード
キーワード2 「プリロード」
・読み込みに時間がかかったり、レンダリングブロックの原因と なるリソースは先に読み込んでしまう。 ・ユーザの行動を予測し、事前に処理を行う。 プリロード →実装次第で遅延ロードよりも高速化を図ることができ、 ユーザの体感速度を向上に繋がる。
プリロードを実現する方法を いくつかご紹介します。
サーバへのプリコネクト - preconnect -
通信先へのプリコネクト ・読み込み先のサーバへ事前に接続しに行く。 ・HEADタグの上部にpreconnect用のタグを埋め込む。 ・事前に名前解決を行う「dns-prefech」のもう一歩先!
<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> 書き方
リソースを複数ドメインから 読み込んでいる場合に効果的。
リソースのプリフェッチ - prefetch -
リソースのプリフェッチ ・次のページで利用するリソースを事前に読み込むことができる。 ・CSSやJS、画像ファイルなど静的なリソースを読み込める。 ・ただし、ユーザの行動を予測し予め設定する必要がある。
<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> 書き方
画像やWebフォントも事前に読み込めるので 表示のもたつきが軽減されます。
ページのプリレンダリング - prerender -
ページのプリレンダリング ・指定したページを事前に読み込み、レンダリングする。 ・事前読み込みされたページへ遷移すると一瞬で表示される。 ・ただし、ユーザの行動を予測し予め設定する必要がある。
<head> <meta charset="UTF-8"> <link rel="prerender" href="http://example.com/nextpage"> <title>prerenderによる事前レンダリング</title> </head> 書き方
Chromeのタスクマネージャー
ユーザの行動が予測できる導線であれば AjaxやPjaxに負けない パフォーマンスを引き出せます。
プリレンダリングを使う上での注意
・バックグラウンドで通信とレンダリングが行われるため、 クライアント・サーバ両方に負荷がかかる。 ・むやみやたらに使っても、事前レンダリングされたページに遷 移しないと意味が無い。 使いすぎは非常に危険
ここまで ユーザの「体感速度」を向上させる 高速化施策をご紹介しました。
遅延ロードとプリロードを 上手く使って快適な Webサイトを作っていきましょう
ご清聴ありがとうございました