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
5分で詰め込む フロントエンド最適化
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
泰 昌平@ShoheiTai
September 10, 2015
Programming
120
0
Share
5分で詰め込む フロントエンド最適化
第2回 集まっtail LT:5分
Webの高速化についてお話させていただきました。
フロントエンドを中心としたパフォーマンス改善になります。
泰 昌平@ShoheiTai
September 10, 2015
More Decks by 泰 昌平@ShoheiTai
See All by 泰 昌平@ShoheiTai
現地チームの心理的安全性から全く違う結論に行き着いた話
shoheitai
0
190
DX企業CTOとして考える技術への向き合い方
shoheitai
0
1.1k
LT20回以上やって、やっと学んだLTの技術
shoheitai
1
150
WSOの現状とすすめかた
shoheitai
0
820
今こそ始めるWSO - Web高速化の現状と対策テクニック
shoheitai
2
1k
“超効率化” で生き残る 2018 #innocafe
shoheitai
2
380
LTを続けてLT文化の素晴らしさを感じた話 #集まっtail
shoheitai
1
5.6k
Drupal8のConfigurationManagementで心が折れた話 #drupalstudy
shoheitai
1
640
もうこわくない!エンジニアを巻き込むコミュニケーション #PRLT
shoheitai
3
3.1k
Other Decks in Programming
See All in Programming
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
380
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
460
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
2
980
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
2.9k
Skillは並べた。動かなかった。契約で繋いだ。— 65個のSkillから、自走する開発サイクルへ
junholee
0
770
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.2k
今さら聞けないCancellationToken
htkym
0
200
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
130
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
Inspired By RubyKaigi (EN)
atzzcokek
0
250
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.1k
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
160
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
The agentic SEO stack - context over prompts
schlessera
0
790
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Rails Girls Zürich Keynote
gr2m
96
14k
Prompt Engineering for Job Search
mfonobong
0
320
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
sira's awesome portfolio website redesign presentation
elsirapls
0
260
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
290
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
The Cult of Friendly URLs
andyhume
79
6.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.2k
Transcript
最適化はここまでしないと気が済まない
5分で詰め込む フロントエンド最適化手法 泰昌平 (@stai0823)
自己紹介 泰 昌平 ファンチーム株式会社 Webエンジニア ダーツとバイクが好き 最近はCakePHPとPhalconをやっています フロントのjavascriptが大好物
今日はフロントエンドを高速化する テクニックについてお話しします。
どうしてフロントエンド?
・サーバのスペックを上げる ・高速な言語に変える ・高速なフレームワークに変える 高速化する方法はいくらでもある。
案件や環境に依存してしまう!
1. バックエンドの最適化よりも 高速化が期待できる 2. 比較的少ない工数で高速化が図れる 3. モバイルでの表示速度を大幅に改善できる フロントエンドの最適化を知っていると
実際にやった事を紹介していきます
・HTML5を使用する ・省略可能タグは必ず省略 ・minifyする ・レンダリングブロックの回避 ・リクエストの削減 ・dnsプリフェッチ機能 ・gzip圧縮 ・CDNを利用する 具体的になにをやったか
・HTML5を使用する ・省略可能タグは必ず省略 ・minifyする ・レンダリングブロックの回避 ・リクエストの削減 ・dnsプリフェッチ機能 ・gzip圧縮 ・CDNを利用する 具体的になにをやったか _人人人人人人_
> 5分の限界 <  ̄Y^Y^Y^Y^Y^Y^ ̄
HTML5でマークアップ
もはやド定番ですが、最適化の観点でいうと ・省略可能な属性が追加 ・以前よりもタグをシンプルに記述できる HTML5でマークアップ ※ここは軽く流していきます
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <script type="text/javascript"></script> <link
rel="stylesheet" type="text/css" href="style.css"> 例えば・・ <!DOCTYPE html> <script></script> <link rel="stylesheet" href="style.css">
省略可能タグを徹底
<html>,</html>,<head>,</head>,<body>, </body>,</li>,</dt>,</dd>,</p>,</option>, </thead>,<tbody>,</tr>,</td>,</th> などなど。。 結構いっぱい省略できる
minify
・無駄なスペース・改行コード・コメントを全て消しておく →Google Closure Compiler →YUI Compressor ・プラグイン・ライブラリも必ずminifyされたものを使う ・フレームワークなどを使用しているのであれば、View出力の 際に処理を加える minifyをしよう
class AppHelper extends Helper { public function afterLayout($layoutFile) { parent::afterLayout($layoutFile);
if($this->_View) { //出力するソースのタブ・スペース・改行を削除する $this->_View->output = str_replace(array("\n", "\t", ' '), '', $this->_View->output); } } } CakePHPの場合
リクエストを減らす
HTMLにインラインで記述する! JSやCSSへのリクエストを最小限に! →HTMLのファイルサイズが増大 →ソースが混在し、管理が難しくなる →キャッシュが使えなくなる
・リクエストを減らす? ・外部ファイル化してキャッシュする? どっちがベスト?
疑問に思ったらteratail!
https://teratail.com/questions/15358
・外部ファイル化はキャッシュされるため速くなる ・ただし、初回はガッツリ読み込みに行くので遅くなる Q.JSの外部ファイル化は本当に速い?
ベストアンサーに選ばれた回答
・一般的にはリクエストは少ないほうが良い ・外部ファイル化はケースバイケース。 →保守性を重視する場合は外部ファイル化 →アクセス数が多いサイトはインラインに記述する場合もある ベストアンサー
dns-prefetchを使う
DNSプリフェッチ ・DNSの名前解決を事前に行うよう強制できる ・HEADタグの上部にprefetch用のタグを埋め込む ・実質、外部のリソースを読みに行っている箇所全てに有効
<head> <meta charset=”UTF-8”> <!-- 出来る限りheadの上部に配置する --> <link rel="dns-prefetch" href="//www.google-analytics.com"> <link
rel="dns-prefetch" href="//www.googletagmanager.com"> <title>DNSプリフェッチ</title> </head> 書き方
いかがでしたでしょうか
ご清聴ありがとうございました