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
DX企業CTOとして考える技術への向き合い方
shoheitai
0
43
LT20回以上やって、やっと学んだLTの技術
shoheitai
1
96
WSOの現状とすすめかた
shoheitai
0
610
今こそ始めるWSO - Web高速化の現状と対策テクニック
shoheitai
2
750
“超効率化” で生き残る 2018 #innocafe
shoheitai
2
300
LTを続けてLT文化の素晴らしさを感じた話 #集まっtail
shoheitai
1
5.2k
Drupal8のConfigurationManagementで心が折れた話 #drupalstudy
shoheitai
1
500
もうこわくない!エンジニアを巻き込むコミュニケーション #PRLT
shoheitai
3
3k
macbookでteratailの秒速回答を目指す - Electron + Node.js #集まっtail
shoheitai
1
1.2k
Other Decks in Programming
See All in Programming
Elm Form Validation
bkuhlmann
0
510
Git Lint
bkuhlmann
4
750
Hanami and htmx
bkuhlmann
0
210
エンターテイメント業界で利用されるAWS
demuyan
0
210
Elm 0.19.0 Changes
bkuhlmann
0
490
2 週間で Twitter Bot を作ってみた
contour_gara
0
380
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
930
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
130
Node.js v22 で変わること
yosuke_furukawa
PRO
9
3.3k
Fragment Composition of GraphQL
quramy
6
950
try! Swift Tokyo 初参加報告LT
hinakko2
0
220
Rethinking UI building strategies @ SFI 2024
letelete
0
270
Featured
See All Featured
Building Your Own Lightsaber
phodgson
99
5.7k
Documentation Writing (for coders)
carmenintech
60
3.9k
We Have a Design System, Now What?
morganepeng
43
6.7k
Music & Morning Musume
bryan
41
5.6k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
The Power of CSS Pseudo Elements
geoffreycrofte
60
5k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
Testing 201, or: Great Expectations
jmmastey
28
6.4k
RailsConf 2023
tenderlove
4
540
KATA
mclloyd
15
12k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
The Cult of Friendly URLs
andyhume
74
5.7k
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サイトを作っていきましょう
ご清聴ありがとうございました