SlideShare a Scribd company logo
1 of 34
Download to read offline
UXを向上させる
サイト高速化テクニック
泰昌平 (@stai0823)
自己紹介
泰 昌平
ファンチーム株式会社 Webエンジニア
・CakePHPとPhalconをやっています
・フロントのjavascriptが大好物
・ダーツとバイクが好き
今日のお話
「UXを向上させる高速化」
今日お話しすることは
・全体のリクエスト、サイズを減らすとかいう話ではない。
・必ずしもGTmetrixのスコアが上がるような施策とは限らない。
・ユーザに速度面でのストレスを軽減するテクニック。
ユーザの「体感速度」を高める
ユーザの「体感速度」を向上させるキーワード
「遅延ロード」と「プリロード」
キーワード1
「遅延ロード」
・読み込みに時間がかかったり、レンダリングブロックの原因と
なるリソースは遅延ロードする。
・jsを動的に追加したり、Ajaxで後から読み込ませたり・・。
遅延ロード
→読み込むリソースに手を加えず、
ユーザの体感速度を向上させることができる。
遅延ロードが有効な事例
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サイトを作っていきましょう
ご清聴ありがとうございました

More Related Content

What's hot

PWA aruaru
PWA aruaruPWA aruaru
PWA aruarun_harada
 
Google AMP (Accelerated Mobile Pages) を纏めてみた
Google AMP (Accelerated Mobile Pages) を纏めてみたGoogle AMP (Accelerated Mobile Pages) を纏めてみた
Google AMP (Accelerated Mobile Pages) を纏めてみたi3DESIGN Co., Ltd.
 
アプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてアプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてbitbank, Inc. Tokyo, Japan
 
123 mapsでのgasの活用
123 mapsでのgasの活用123 mapsでのgasの活用
123 mapsでのgasの活用Junya Sato
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱Fumio SAGAWA
 
Csawわーくしょっぷ(仮)
Csawわーくしょっぷ(仮)Csawわーくしょっぷ(仮)
Csawわーくしょっぷ(仮)Takamasa Maeda
 
ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善Joni
 
Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性Katsuhisa Ogawa
 
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順についてPWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順についてWheetTweet
 
Learn vue.js
Learn vue.jsLearn vue.js
Learn vue.jsyuxiang21
 
設定のカスタマイズで
まだまだ使える
Dreamweaver
設定のカスタマイズで
まだまだ使える
Dreamweaver設定のカスタマイズで
まだまだ使える
Dreamweaver
設定のカスタマイズで
まだまだ使える
DreamweaverAkira Maruyama
 
PWAがOculus Storeに配信できるようになる
PWAがOculus Storeに配信できるようになるPWAがOculus Storeに配信できるようになる
PWAがOculus Storeに配信できるようになるTAM
 
HTML5: New capabilities, new markup
HTML5: New capabilities, new markupHTML5: New capabilities, new markup
HTML5: New capabilities, new markupourmaninjapan
 

What's hot (20)

PWA aruaru
PWA aruaruPWA aruaru
PWA aruaru
 
Google AMP (Accelerated Mobile Pages) を纏めてみた
Google AMP (Accelerated Mobile Pages) を纏めてみたGoogle AMP (Accelerated Mobile Pages) を纏めてみた
Google AMP (Accelerated Mobile Pages) を纏めてみた
 
アプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてアプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方について
 
123 mapsでのgasの活用
123 mapsでのgasの活用123 mapsでのgasの活用
123 mapsでのgasの活用
 
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
 
Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発Webアプリの向こうに見えるPWAアプリ開発
Webアプリの向こうに見えるPWAアプリ開発
 
Csawわーくしょっぷ(仮)
Csawわーくしょっぷ(仮)Csawわーくしょっぷ(仮)
Csawわーくしょっぷ(仮)
 
ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善ASP.NET パフォーマンス改善
ASP.NET パフォーマンス改善
 
Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性Web体験を向上させるcdnと表示速度の重要性
Web体験を向上させるcdnと表示速度の重要性
 
JSON吸って吐く機械
JSON吸って吐く機械JSON吸って吐く機械
JSON吸って吐く機械
 
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順についてPWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
 
Wordvolcano
WordvolcanoWordvolcano
Wordvolcano
 
Learn vue.js
Learn vue.jsLearn vue.js
Learn vue.js
 
HTML5最前線
HTML5最前線HTML5最前線
HTML5最前線
 
ngJapan報告会
ngJapan報告会ngJapan報告会
ngJapan報告会
 
設定のカスタマイズで
まだまだ使える
Dreamweaver
設定のカスタマイズで
まだまだ使える
Dreamweaver設定のカスタマイズで
まだまだ使える
Dreamweaver
設定のカスタマイズで
まだまだ使える
Dreamweaver
 
PWAがOculus Storeに配信できるようになる
PWAがOculus Storeに配信できるようになるPWAがOculus Storeに配信できるようになる
PWAがOculus Storeに配信できるようになる
 
HTML5: New capabilities, new markup
HTML5: New capabilities, new markupHTML5: New capabilities, new markup
HTML5: New capabilities, new markup
 
WebVRの可能性.pptx
WebVRの可能性.pptxWebVRの可能性.pptx
WebVRの可能性.pptx
 
Night Hack LT
Night Hack LTNight Hack LT
Night Hack LT
 

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

モバイル時代のWebパフォーマンス
モバイル時代のWebパフォーマンスモバイル時代のWebパフォーマンス
モバイル時代のWebパフォーマンスyoshikawa_t
 
Async flow controll basic and practice
Async flow controll basic and practiceAsync flow controll basic and practice
Async flow controll basic and practiceMasakazu Muraoka
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AzareaCluster
 
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方Yoichiro Takehora
 
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法Eiji Kodama
 
高速化はじめの一歩
高速化はじめの一歩高速化はじめの一歩
高速化はじめの一歩Yuki Nakane
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことMasakazu Muraoka
 
Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法Yoichi Kawasaki
 
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osakatama200x Kobayashi
 
スマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントスマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントMasakazu Muraoka
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことMitsuru Ogawa
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからHiroshi Kawada
 
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道Hideki Akiba
 
マルチデバイス時代の高速化
マルチデバイス時代の高速化マルチデバイス時代の高速化
マルチデバイス時代の高速化Shin Takeuchi
 
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014taiju higashi
 
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成Rakuten Group, Inc.
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Masakazu Muraoka
 
Cloudflareを活用したWebパフォーマンスチューニング
Cloudflareを活用したWebパフォーマンスチューニングCloudflareを活用したWebパフォーマンスチューニング
Cloudflareを活用したWebパフォーマンスチューニングYoichiro Takehora
 

Similar to UXを向上させる サイト高速化テクニック (20)

モバイル時代のWebパフォーマンス
モバイル時代のWebパフォーマンスモバイル時代のWebパフォーマンス
モバイル時代のWebパフォーマンス
 
Async flow controll basic and practice
Async flow controll basic and practiceAsync flow controll basic and practice
Async flow controll basic and practice
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
 
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
 
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
スマホ向けWebアプリ開発で使えるフロントエンド高速化手法
 
高速化はじめの一歩
高速化はじめの一歩高速化はじめの一歩
高速化はじめの一歩
 
HTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なことHTML5時代のwebクリエイターに必要なこと
HTML5時代のwebクリエイターに必要なこと
 
Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法
 
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
2012/5/19 Webのパフォーマンスを考える ~WordPressと付き合うために~ @ WB Osaka
 
スマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイントスマートフォン開発の事例 Html5開発の導入ポイント
スマートフォン開発の事例 Html5開発の導入ポイント
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
 
The Next PowerCMS
The Next PowerCMSThe Next PowerCMS
The Next PowerCMS
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
HTML5な今日この頃に贈る、Webデザイナーこれからの生きる道
 
マルチデバイス時代の高速化
マルチデバイス時代の高速化マルチデバイス時代の高速化
マルチデバイス時代の高速化
 
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
俺のローカル開発環境 - MTDDC Meetup NAGOYA 2014
 
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
CIサーバを制圧せよ! - プロジェクトメトリクスと自動化技術の活用よる混乱の収拾と「最強」の組織の育成
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
Cloudflareを活用したWebパフォーマンスチューニング
Cloudflareを活用したWebパフォーマンスチューニングCloudflareを活用したWebパフォーマンスチューニング
Cloudflareを活用したWebパフォーマンスチューニング
 
PHP-Ninjaの裏側
PHP-Ninjaの裏側PHP-Ninjaの裏側
PHP-Ninjaの裏側
 

More from Shohei Tai

teratailで秒速回答を目指す - GoogleAppsScript + SlackWebhook
teratailで秒速回答を目指す - GoogleAppsScript + SlackWebhookteratailで秒速回答を目指す - GoogleAppsScript + SlackWebhook
teratailで秒速回答を目指す - GoogleAppsScript + SlackWebhookShohei Tai
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Shohei Tai
 
HTML5でteratailが喋った!
HTML5でteratailが喋った!HTML5でteratailが喋った!
HTML5でteratailが喋った!Shohei Tai
 
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみたShohei Tai
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話Shohei Tai
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHPShohei Tai
 

More from Shohei Tai (6)

teratailで秒速回答を目指す - GoogleAppsScript + SlackWebhook
teratailで秒速回答を目指す - GoogleAppsScript + SlackWebhookteratailで秒速回答を目指す - GoogleAppsScript + SlackWebhook
teratailで秒速回答を目指す - GoogleAppsScript + SlackWebhook
 
Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話Webエンジニアが初めて機械学習に触れてみた話
Webエンジニアが初めて機械学習に触れてみた話
 
HTML5でteratailが喋った!
HTML5でteratailが喋った!HTML5でteratailが喋った!
HTML5でteratailが喋った!
 
久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた久しぶりのPythonでgoogleのアレを制御してみた
久しぶりのPythonでgoogleのアレを制御してみた
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHP
 

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