Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SSRを避けるためにやっていること / ssr-alternative
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
mottox2
December 09, 2019
Programming
3.3k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SSRを避けるためにやっていること / ssr-alternative
Ginza.js #7の発表資料です
mottox2
December 09, 2019
More Decks by mottox2
See All by mottox2
つくり方を変えていく | change-how-we-build
mottox2
2
1.5k
もう一歩進めたい OG画像の動的生成
mottox2
7
3k
なぜコピペで使うコンポーネント集を利用するのか?
mottox2
8
7.6k
UIコンポーネントライブラリをうまく使うためにできること / components-with-designer
mottox2
7
4.1k
Figma Plugin公開までの壁を乗り越える
mottox2
3
4.2k
Puppeteerでつくる画像と動画 / images and videos made with puppeteer
mottox2
0
810
手触りのよいウェブを考える / better-mobile-web
mottox2
3
2.1k
組織と権限とSlack App / slack-app-with-roles
mottox2
1
740
JSXでつくる宣言的UIなプレゼンテーション / jsx-presentation
mottox2
7
34k
Other Decks in Programming
See All in Programming
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
340
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
410
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
contenteditable と日本語入力に向き合う
colorful12
0
200
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
0
570
sbt 2.0: takeoff
eed3si9n
0
160
パスワード再設定メールのURLについて知っておこう
uyuki234
0
170
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
810
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
170
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
830
Featured
See All Featured
Making Projects Easy
brettharned
120
6.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
710
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
The Limits of Empathy - UXLibs8
cassininazir
2
730
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Believing is Seeing
oripsolob
1
250
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
First, design no harm
axbom
PRO
2
1.3k
Transcript
None
Gatsby, Gridsome, Next.js, etc … JSX pptx お仕事 Watching mottox2
@ ؿٔ٦ٓٝأ8FCؒٝآص، ⾃⼰紹介 ひとこと
#ginzajs
#ginzajs 最近のお気もち SSRやりたくない ‣ ‣ Hosting Function ⾒ ‣ TTFB
‣ ‣ ‣
#ginzajs SSR/SPA ‣ SSR SPA hydration ‣ Next.js Nuxt.js
#ginzajs そもそもなぜSSR/SPAだったのか? ‣ SSR Consumer ‣ ‣ SPA ‣ DX
‣ SEO SNS ‣ SSR ‣ SPA ‣ SSR
#ginzajs SPA+SSRは開発者体験‧開発速度に寄与するか? ‣ SSR ‣ DX SPA SSR ‣ Laravel
Rails ‣ pjax Rails Turbolinks DXが良い DXが悪い SPAによるDX SSRによるDX 全体としてDXはよくなっているのか?
#ginzajs じゃあ、どうするか? ‣ SSR DX ‣ SSR ‣
#ginzajs 解決するべき課題 1 . SEO 2 . SNS OGP 3
. Lambda@Edge Prerendering Google
#ginzajs なぜ表⽰速度? ‣ ‣ index.html ‣ JS <!doctype html> <html
lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" href="/favicon.ico" /> <meta name="viewport" content="width=device-widt <meta name="theme-color" content="#000000" /> <meta name="description" content="Web site creat <link rel="apple-touch-icon" href="/logo192.png" <link rel="manifest" href="/manifest.json" /> <title>React App</title> <link href="/static/css/main.d1b05096.chunk.css" </head> <body><noscript>You need to enable JavaScript to r <div id="root"></div> <script><!— !! —></script> <script src="/static/js/2.6c6eb89e.chunk.js"></s <script src="/static/js/main.e41c5136.chunk.js"> </body> </html> SPA HTML表⽰後 JS実⾏後
#ginzajs なぜ表⽰速度? ‣ Twitter ‣ ‣ B ‣ ‣ ‣
2 ‣ C ‣ ServiceWorker 2 ‣ ‣ SSR
#ginzajs 改善の⽅針 1 . JS Code Splitting 2 .
#ginzajs バンドルサイズの削減 1 ‣ SPA JS jQuery ‣ JS ‣
‣ CodeSplitting ‣ Next.js Nuxt.js JS ‣ Lighthouse ‣
#ginzajs HTMLのプリレンダリング 2 ‣ Lighthouse PageSpeed Insight ‣ HTML ‣
JS HTML
#ginzajs HTMLのプリレンダリング 2 ‣ SPA HTML ‣ react-snapshot create-react-app ‣
Static HTML export Next.js ‣ Gatsby
#ginzajs HTMLのプリレンダリング - 戦略 2 ‣ ‣ `/posts` `/posts/:id` ‣
#ginzajs HTMLのプリレンダリング - 応⽤ 2 ‣ Skeleton ‣ ‣
#ginzajs ありそうな質問 ‣ ‣ Next.js (without SSR) ‣ CDN Lighthouse
Performance 90 ‣ SEO ‣ ‣
#ginzajs ありそうな質問 ‣ ‣ Next.js (without SSR) ‣ CDN Lighthouse
Performance 90 ‣ SEO ‣ ‣
#ginzajs まとめ ‣ SSR ‣ SSR
#ginzajs フレームワークに乗りたい ‣ Next.js Nuxt.js ‣ ‣ ‣ SSR ‣
‣ webpack.con fi g.js ‣ ‣ Appendix
#ginzajs Next.jsの最適化に注⽬ ‣ ‣ Next.js Chrome ‣ ‣ async/await Poly
fi ll ‣ Code Splitting ‣ ⾒ commons chunk ‣ Static HTML Export話 Appendix
Thank you! 201 9 . 1 2 . 9 Ginza.js
# 7 / @mottox 2