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
110
UXを向上させる サイト高速化テクニック
第三回 集まっtail LT:5分
ユーザの体感速度を向上させるための、Webサイト高速化テクニックについて。UXに着目した高速化手法です。
泰 昌平@ShoheiTai
December 10, 2015
Tweet
Share
More Decks by 泰 昌平@ShoheiTai
See All by 泰 昌平@ShoheiTai
現地チームの心理的安全性から全く違う結論に行き着いた話
shoheitai
0
130
DX企業CTOとして考える技術への向き合い方
shoheitai
0
830
LT20回以上やって、やっと学んだLTの技術
shoheitai
1
120
WSOの現状とすすめかた
shoheitai
0
720
今こそ始めるWSO - Web高速化の現状と対策テクニック
shoheitai
2
880
“超効率化” で生き残る 2018 #innocafe
shoheitai
2
350
LTを続けてLT文化の素晴らしさを感じた話 #集まっtail
shoheitai
1
5.3k
Drupal8のConfigurationManagementで心が折れた話 #drupalstudy
shoheitai
1
590
もうこわくない!エンジニアを巻き込むコミュニケーション #PRLT
shoheitai
3
3.1k
Other Decks in Programming
See All in Programming
オープンソースコントリビュート入門
_katsuma
0
150
Orleans + Sekiban + SignalR でリアルタイムWeb作ってみた
tomohisa
0
250
CQRS/ESのクラスとシステムフロー ~ RailsでフルスクラッチでCQRSESを組んで みたことから得た学び~
suzukimar
0
120
Duke on CRaC with Jakarta EE
ivargrimstad
1
250
“技術カンファレンスで何か変わる?” ──RubyKaigi後の自分とチームを振り返る
ssagara00
0
150
SwiftDataのカスタムデータストアを試してみた
1mash0
0
150
Global Azure 2025 @ Kansai / Hyperlight
kosmosebi
0
160
Ruby で作る RISC-V CPU エミュレーター / RISC-V CPU emulator made with Ruby
hayaokimura
5
1.2k
20250426 GDGoC 合同新歓 - GDGoC のススメ
getty708
0
120
「理解」を重視したAI活用開発
fast_doctor
0
320
Live Coding: Migrating an Application to Signals
manfredsteyer
PRO
0
110
クラシルリワードにおける iOSアプリ開発の取り組み
funzin
1
160
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
84
5.5k
Raft: Consensus for Rubyists
vanstee
137
6.9k
How to train your dragon (web standard)
notwaldorf
91
6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Typedesign – Prime Four
hannesfritz
41
2.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Embracing the Ebb and Flow
colly
85
4.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Rails Girls Zürich Keynote
gr2m
94
13k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
BBQ
matthewcrist
88
9.6k
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サイトを作っていきましょう
ご清聴ありがとうございました