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
ブラウザレンダリングについて(簡易版)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kab0718
November 29, 2023
76
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ブラウザレンダリングについて(簡易版)
kab0718
November 29, 2023
More Decks by kab0718
See All by kab0718
visxに触ってみた話
kab0718
0
280
アルゴリズムと計算量
kab0718
0
67
お嬢様言葉
kab0718
0
190
アイドルとコミュニケーション
kab0718
0
42
コーディングで意識してること
kab0718
0
61
趣味とぷよぐらみんぐ
kab0718
0
230
SDLアプリコンテスト2019プレゼン資料
kab0718
0
65
近況報告
kab0718
0
1.4k
アイドル×アイドル
kab0718
0
160
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
KATA
mclloyd
PRO
35
16k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
640
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Mind Mapping
helmedeiros
1
400
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Automating Front-end Workflow
addyosmani
1369
210k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
RailsConf 2023
tenderlove
30
1.6k
Embracing the Ebb and Flow
colly
88
5.2k
Transcript
ブラウザレンダリングについて
概要 • ブラウザがページ表示するまでの流れ • 知ることのメリット ◦ パフォーマンス改善の原因特定 初期描画だけでなく操作に対しての応答速度も含む ◦
web系やるとき知っておけば便利 • ブラウザがやってくれてることなので知らなくても ものは作れる
工程 Download Parse Scripting Calculate Style Layout Paint Rasterize Paint
Composite Layers Loading Rendering Painting Frame
Download Parse Scripting Calculate Style Layout Paint Rasterize Paint Composite
Layers Loading Frame Rendering Painting
Loading • Download ◦ htmlやcss、JavaScriptファイル、画像などの リソースをサーバーからダウンロードする • Parse ◦
html/cssをパース(構文解析)してレンダリング用の データ構造に変換 html → DOMツリー css → CSSOMツリー
Download Parse Scripting Calculate Style Layout Paint Rasterize Paint Composite
Layers Loading Frame Painting Rendering
Scripting • JavaScriptファイルの実行 • JavaScriptのコードを解析してコンパイルすることで 実行可能な形式に変換 • 解析も以下の二段階に分かれて実施している ◦
字句解析 ソースコードをトークンと呼ばれる単位に分割 ◦ 構文解析 トークンの配列から抽象構文木を作成
Download Parse Scripting Calculate Style Layout Paint Rasterize Paint Composite
Layers Loading Frame Painting Rendering
Rendering • Calculate Style ◦ DOMツリー内のすべての要素に対してどのcssプロパティが 当たるか計算 ◦ cssルールのcssセレクタがマッチするか総当たりで実施
• Layout ◦ レイアウト情報の計算とレイアウトを実施 ◦ レイアウト情報とは →要素の大きさ/margin/padding/位置/z軸の位置
Download Parse Scripting Calculate Style Layout Paint Rasterize Paint Composite
Layers Loading Frame Painting Rendering
Painting • Paint ◦ 内部の2Dグラフィックエンジン向けの命令を生成 • Rasterize ◦ 生成された命名を基にレイヤーと呼ばれる単位で
ピクセルへと描画 ◦ レイヤーはz軸の上下関係を持つ • Composite Layers ◦ レイヤーを合成してレンダリング結果を生成
最後に • 大分端折った内容になった • 右の本でこの辺もっと詳しく書いてるらしい →今買ったので未読 • パフォーマンス系の問題に当たった時に 軽く思い出してほしい
• 目に見える部分だけでなく 低レイヤーの理解も大事