×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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!