Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ペパボ ホスティング事業部のブラウザレンダリング基本知識 2022 / Browser Rendering Basics of pepabo hosting division
sangun kang
November 21, 2022
Programming
0
880
ペパボ ホスティング事業部のブラウザレンダリング基本知識 2022 / Browser Rendering Basics of pepabo hosting division
GMOペパボ新卒研修ーブラウザレンダリング基本知識
sangun kang
November 21, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
AWSとCPUのムフフな関係
cmdemura
0
470
WordPress(再)入門 - 基礎知識・環境編
oleindesign
1
140
ポケモンで学ぶiOS 16弾丸ツアー 🚅
giginet
PRO
1
610
Micro Frontends with Module Federation @MicroFrontend Summit 2023
manfredsteyer
PRO
0
570
Makuakeの認証基盤とRe-Architectureチーム
bmf_san
0
600
Becoming an Android Librarian (Android World Wide 2023 Jan)
skydoves
1
210
社会人 20 年目エンジニア、発信で技術学びなおしてる話
e99h2121
1
140
TSX First な Zero-Runtime SSG potato4d/dodai とその仕組み / owned static site generator #kyotojs
potato4d
0
290
What's new in Shopware 6.5
shyim
0
110
フロントエンドで学んだことをデータ分析で使ってみた話
daichi_igarashi
0
180
PHP でガチの電卓を作る
memory1994
PRO
1
110
ECS Service Connectでマイクロサービスを繋いでみた
xblood
0
550
Featured
See All Featured
BBQ
matthewcrist
75
8.1k
For a Future-Friendly Web
brad_frost
166
7.8k
How to name files
jennybc
47
73k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
What's new in Ruby 2.0
geeforr
336
30k
Why Our Code Smells
bkeepers
PRO
326
55k
Designing for humans not robots
tammielis
245
24k
Support Driven Design
roundedbygravity
88
8.9k
Docker and Python
trallard
30
1.9k
Agile that works and the tools we love
rasmusluckow
320
20k
Product Roadmaps are Hard
iamctodd
38
7.7k
Teambox: Starting and Learning
jrom
124
7.9k
Transcript
ブラウザレンダリング簡単紹介 1 sangun / GMO PEPABO inc. 2022.06.20 フロントエンド研修
2 自己紹介 ホスティング事業部 マーケティングチーム 姜 相雲 Kang Sang Un さんうんと呼んでください •
韓国から来ました。 • 海が大好きです。 • instagram : sangun.kang
3 アジェンダ 1. ブラウザとは 2. ブラウザのレンダリング 3. DevToolとパフォーマンス
4 1. ブラウザとは
ブラウザとは? 5 ブラウザとは? Webサイトにアクセスするためのソフトウェア WebサーバーからもらったHTML,CSS, JS,イメージなどのリソースを出力
ブラウザとは? 6 我々はWebブラウザを利用して 膨大なインターネットのコンテンツを見たり、作ったりしています。
ブラウザとは? 7 では、我々が見ている様々な コンテンツをブラウザは どう処理しているのかな?
8 2.ブラウザのレンダリング
ブラウザのレンダリング 9 • レンダリングとはHTML、CSS、JavaScriptなどのドキュメントをブラウ ザで出力する過程。 • ブラウザが画面に表示される要素をレンダリングする際、Webkit や Gecko などのレンダリングエンジンと呼ばれるものを使用する。
レンダリング(Rendering)
10 ブラウザのレンダリング レンダリングの過程は以下の通り 1. リソースのダウンロード 2. リソースをパース 3. レンダーツリー生成 4.
Layout 5. Paint
11 ブラウザのレンダリング リソースのダウンロード • HTML、CSS、JavaScript、画像などをサーバーから取得する
12 ブラウザのレンダリング リソースをパース(構文解析) • HTMLブラウザが理解できる構造に変換する作業 • HTMLをパースしてDOMツリー構造に変更 • CSSをパースしてCSSOMツリー構造に変更 ◦
DOMと似ている構造 • パースの結果はノードと呼ばれ、ノードツリーとなる
13 ブラウザのレンダリング レンダーツリー生成 • 画面に表示するノードだけを含めたツリーを生成する ◦ 画面に表示されないノードは、追加しない(script、metaタグ) ◦ display:noneも追加しない(visibility:hiddenは含まれます) •
各ノードに一致するCSSOMルールを探して適用 • 画面に表示されるノードをコンテンツ及び計算されたスタイルでツ リー構築
14 ブラウザのレンダリング
15 ブラウザのレンダリング Layout と Paint • 結果が表示される場所を計算する • 位置、大きさ全部計算する •
ダイナミックな大きさや、%のサイズも全部Pixel(px)に変更 • その後、各ノードを実際の画面に表示する
16 ブラウザのレンダリング Layout と Paint レンダリングの過程で、各要素の正確な位置が計算され、配置されます。
17 ブラウザのレンダリング JavaScript と CSS • jsはHTMLのパースをブロックするリソース(parser blocking resource) ◦
HTMLパースで、JSがある場合、パースを止めてjsをパースする ◦ 結局、レンダリングの速度が遅くなる ◦ 後でロードするか、HTMLパースに影響がないところで宣言する • CSSはレンダリングをブロックするリソース(render blocking resource) ◦ CSSはレンダリングに必ず必要なので、初期段階で必要となる CSSを先に宣言したりする ◦ <head>タグのに定義したり
18 3. DevToolとパフォーマンス
19 DevToolとパフォーマンス ブラウザで開発向けで確認やデバッグなど色々を提供する機能
• Elements: HTMLをパースした後のDOM要素 • Console: エラーの情報や意図的に設定されたログ • Sources: ページを表示するために使用した実際のリソース •
Network: リクエストやレスポンスの状況 • Performance: レンダリング速度などサイトの分析結果 主に使うのは以下の5つ 20 DevToolとパフォーマンス
21 DevToolとパフォーマンス パフォーマンス • パフォーマンスはWebサイトのレンダリングの過程を分析する機能 • ページのレンダリング完了までの時間やボトルネックになっている部分を視覚化できる イベントログなど、詳細な情報も読み取れる レンダリングの詳細を可視化
22 Thank You! Thank You!