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
SSRを避けるためにやっていること / ssr-alternative
Search
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.4k
もう一歩進めたい OG画像の動的生成
mottox2
7
2.9k
なぜコピペで使うコンポーネント集を利用するのか?
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
800
手触りのよいウェブを考える / 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
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
220
初めての模倣学習とVLA
natsutan
0
470
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
PyO3 で既存 Python 評価器を Rust core 化する ー wasm-bindgen でブラウザにも配るための設計
kdash
1
370
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
440
Press start. Python's next generation.
willingc
PRO
3
300
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
MIZARU@SPAJAM2026 第二回予選
1901drama
0
100
Oxlintはいいぞ(続)
yug1224
1
540
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
570
Building Applications with DynamoDB
mza
96
7.2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
How to make the Groovebox
asonas
2
2.4k
The Limits of Empathy - UXLibs8
cassininazir
1
640
Google's AI Overviews - The New Search
badams
0
1.6k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
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