Slide 1

Slide 1 text

ブラウザレンダリング簡単紹介 1 sangun / GMO PEPABO inc. 2022.06.20 フロントエンド研修

Slide 2

Slide 2 text

2 自己紹介 ホスティング事業部 マーケティングチーム 姜 相雲 Kang Sang Un さんうんと呼んでください ● 韓国から来ました。 ● 海が大好きです。 ● instagram : sangun.kang

Slide 3

Slide 3 text

3 アジェンダ 1. ブラウザとは 2. ブラウザのレンダリング 3. DevToolとパフォーマンス

Slide 4

Slide 4 text

4 1. ブラウザとは

Slide 5

Slide 5 text

ブラウザとは? 5 ブラウザとは? Webサイトにアクセスするためのソフトウェア WebサーバーからもらったHTML,CSS, JS,イメージなどのリソースを出力

Slide 6

Slide 6 text

ブラウザとは? 6 我々はWebブラウザを利用して 膨大なインターネットのコンテンツを見たり、作ったりしています。

Slide 7

Slide 7 text

ブラウザとは? 7 では、我々が見ている様々な コンテンツをブラウザは どう処理しているのかな?

Slide 8

Slide 8 text

8 2.ブラウザのレンダリング

Slide 9

Slide 9 text

ブラウザのレンダリング 9 ● レンダリングとはHTML、CSS、JavaScriptなどのドキュメントをブラウ ザで出力する過程。 ● ブラウザが画面に表示される要素をレンダリングする際、Webkit や Gecko などのレンダリングエンジンと呼ばれるものを使用する。 レンダリング(Rendering)

Slide 10

Slide 10 text

10 ブラウザのレンダリング レンダリングの過程は以下の通り 1. リソースのダウンロード 2. リソースをパース 3. レンダーツリー生成 4. Layout 5. Paint

Slide 11

Slide 11 text

11 ブラウザのレンダリング リソースのダウンロード ● HTML、CSS、JavaScript、画像などをサーバーから取得する

Slide 12

Slide 12 text

12 ブラウザのレンダリング リソースをパース(構文解析) ● HTMLブラウザが理解できる構造に変換する作業 ● HTMLをパースしてDOMツリー構造に変更 ● CSSをパースしてCSSOMツリー構造に変更 ○ DOMと似ている構造 ● パースの結果はノードと呼ばれ、ノードツリーとなる

Slide 13

Slide 13 text

13 ブラウザのレンダリング レンダーツリー生成 ● 画面に表示するノードだけを含めたツリーを生成する ○ 画面に表示されないノードは、追加しない(script、metaタグ) ○ display:noneも追加しない(visibility:hiddenは含まれます) ● 各ノードに一致するCSSOMルールを探して適用 ● 画面に表示されるノードをコンテンツ及び計算されたスタイルでツ リー構築

Slide 14

Slide 14 text

14 ブラウザのレンダリング

Slide 15

Slide 15 text

15 ブラウザのレンダリング Layout と Paint ● 結果が表示される場所を計算する ● 位置、大きさ全部計算する ● ダイナミックな大きさや、%のサイズも全部Pixel(px)に変更 ● その後、各ノードを実際の画面に表示する

Slide 16

Slide 16 text

16 ブラウザのレンダリング Layout と Paint レンダリングの過程で、各要素の正確な位置が計算され、配置されます。

Slide 17

Slide 17 text

17 ブラウザのレンダリング JavaScript と CSS ● jsはHTMLのパースをブロックするリソース(parser blocking resource) ○ HTMLパースで、JSがある場合、パースを止めてjsをパースする ○ 結局、レンダリングの速度が遅くなる ○ 後でロードするか、HTMLパースに影響がないところで宣言する ● CSSはレンダリングをブロックするリソース(render blocking resource) ○ CSSはレンダリングに必ず必要なので、初期段階で必要となる CSSを先に宣言したりする ○ タグのに定義したり

Slide 18

Slide 18 text

18 3. DevToolとパフォーマンス

Slide 19

Slide 19 text

19 DevToolとパフォーマンス ブラウザで開発向けで確認やデバッグなど色々を提供する機能

Slide 20

Slide 20 text

• Elements: HTMLをパースした後のDOM要素 • Console: エラーの情報や意図的に設定されたログ • Sources: ページを表示するために使用した実際のリソース • Network: リクエストやレスポンスの状況 • Performance: レンダリング速度などサイトの分析結果 主に使うのは以下の5つ 20 DevToolとパフォーマンス

Slide 21

Slide 21 text

21 DevToolとパフォーマンス パフォーマンス ● パフォーマンスはWebサイトのレンダリングの過程を分析する機能 ● ページのレンダリング完了までの時間やボトルネックになっている部分を視覚化できる イベントログなど、詳細な情報も読み取れる レンダリングの詳細を可視化

Slide 22

Slide 22 text

22 Thank You! Thank You!