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
PWA, SEO, SSR
Search
aggre
November 04, 2017
Technology
790
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PWA, SEO, SSR
https://polymer-japan.connpass.com/event/69080/
の登壇資料です
aggre
November 04, 2017
More Decks by aggre
See All by aggre
The money for the openable and shareable era
aggre
0
540
エンジニアは会社に何を求めるか? / What does engineers wants the company?
aggre
0
180
The importance ofopen assets
aggre
0
120
Fully AMP pros and cons
aggre
0
250
Web Components のリアル/ Realistic Web Components
aggre
12
8.6k
OSS の持続的開発をトークンエコノミーで支援する / Dev Token @OSS Universe
aggre
1
420
OSS の持続的開発をトークンエコノミーで支援する / Dev Token @CryptoBowl
aggre
1
510
Mastering lit-html directive
aggre
0
480
非中央集権ウェブ / Decentralized Web
aggre
3
650
Other Decks in Technology
See All in Technology
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
240
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
640
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.6k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.8k
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
240
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
QAエンジニア起点で進める、SmartHRにおける信頼性向上について
kaomi_wombat
1
120
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7k
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
1.1k
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
120
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
150
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
560
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
410
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
AI: The stuff that nobody shows you
jnunemaker
PRO
9
900
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Google's AI Overviews - The New Search
badams
0
1.1k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Transcript
PWA, SEO, SSR
PWA
None
Service Worker HTTPS
Service Worker HTTPS
Polymer PWA
polymer init polymer build
ls build/es6-unbundled - service-worker.js - manifest.json
SEO/Bot
<hello-world></hello-world>
<hello-world> #shadow-root <style> h1 { color: blue } </style> <h1>Hello,
world!</h1> </hello-world>
<hello-world></hello-world>
SSR
Node.js
require('@skatejs/ssr/register'); const render = require('@skatejs/ssr’); class Hello extends HTMLElement {
connectedCallback () { const shadowRoot = this.attachShadow({ mode: 'open' }); shadowRoot.innerHTML = '<span>Hello, world!</span>'; } } customElements.define('x-hello', Hello); const hello = new Hello(); render(hello).then(console.log);
None
ShadowDOM?
<hello-world> #shadow-root <style> h1 { color: blue } </style> <h1>Hello,
world!</h1> </hello-world>
https://host/?dom=shady window.ShadyDOM = { force: true };
Rendertron
Prerender.io
Renderly
None