$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ブラウザレンダリングをまるッと学ぶ
Search
yosi
August 08, 2022
Programming
0
190
ブラウザレンダリングをまるッと学ぶ
yosi
August 08, 2022
Tweet
Share
More Decks by yosi
See All by yosi
自社開発のエンジニアの私が 大事にしてること(n=1)
yoshisan
1
63
なるほどGit講座 (追跡ブランチが理解できます!)
yoshisan
0
190
「自分の時間を生きる」キャリア論
yoshisan
1
100
小学生でもわかる SlackAPI×GAS
yoshisan
0
110
達人プログラマーになろう!
yoshisan
0
120
認証認可
yoshisan
1
140
オブジェクト指向が"チョットワカル"スライド
yoshisan
0
120
Linuxについて"ほんのチョットワカル"スライド
yoshisan
1
120
Let's React!! "チョットワカル"の第一歩
yoshisan
1
200
Other Decks in Programming
See All in Programming
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.1k
Python札幌 LT資料
t3tra
6
1k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
440
俺流レスポンシブコーディング 2025
tak_dcxi
14
9.5k
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
250
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
280
GISエンジニアから見たLINKSデータ
nokonoko1203
0
180
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
470
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
エディターってAIで操作できるんだぜ
kis9a
0
750
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
360
Basic Architectures
denyspoltorak
0
100
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
0
27
First, design no harm
axbom
PRO
1
1.1k
Google's AI Overviews - The New Search
badams
0
870
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Statistics for Hackers
jakevdp
799
230k
Heart Work Chapter 1 - Part 1
lfama
PRO
3
35k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
37k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Paper Plane
katiecoart
PRO
0
44k
Chasing Engaging Ingredients in Design
codingconduct
0
84
Transcript
ブラウザレンダリング まるっと学ぶ 大事なことをわかりやすく ココカラ勉強会 松田幸典(よし)
要点 このプレゼンテーションの 主なトピック 前回までの流れ レスポンスからブラウザレンダリングの流れ 各層でやってること。 おさらい
ステップ 1 どうしてWebができた のか?? ステップ 3 ・WWW ・ブラウザ Webの爆発的な普及 ステップ
2 TCP/IPモデル OSI参照モデル 世界の決まり事 ~プロトコル~ ステップ 5 カプセル化によって簡易に! みんなが使うHTTP ステップ 4 クライアントとサーバの対話 リクエスト レスポンス Webの歴史
ブラウザの仕組み! まるっと理解しよう! 前回は大まかなWebとは何か?を考えました。 今回はリクエストとレスポンス間でももっと視点を絞ります。 レスポンスから受け取った情報(データ)のアプリケーション層での動き
CSSの ダウンロード 全体図 HTMLの ダウンロード HTMLの解析 DOMの構築 JSを ダウンロード JSの実行
CSSの解析 CSSOMの構築 Render Tree の構築 Layout Painting
参照(https://developers.google.com/web/fundamentals/performance/critical-rendering-path/constructing-the-object-model?hl=ja)
①HTMLの ダウンロード サーバー側から送られてきたHTMLをダウンロード
②HTMLの解析(parse) Bytes ① Charracters ② Tokens ③ Nodes ④ DOM
⑤ ▷ ▷ ▷ ▷ 送られてきたHTMLデータはただの「0」「1」の羅列。 つまりBytesの状態です。 これをJavaScriptが扱えるDOMまで変換します。 変換する際にまずは解析(parse)します。
②HTMLの解析(parse) Bytes ① Charracters ② Tokens ③ Nodes ④ DOM
⑤ ▷ ▷ ▷ ▷ ByteかCharracters(文字)への変換 0,1のByteから人間が読める文字 (Characters)に変換します。 変換は「文字コード」に基づきます。 例)UTF-8,Shift-JIS,ASCIIコード,,,
None
優先度 ①Content-Type に記述,②HTMLのmetaタグ 書かれてない場合は文字推測をする。
②HTMLの解析(parse) Bytes ① Charracters ② Tokens ③ Nodes ④ DOM
⑤ ▷ ▷ ▷ ▷ CharractersからTokenへの変換 Tokenとは「これ以上細かく分解できない最小単位」のこと。 主な種類は3種 (全部で6種※細かいので割愛) ①Start Tag,②End Tag,③Character
一番左から順に識別していきます。 <から始まるものがあればそれをStart Tag Tokenになります。 h,t,m,lと順に読み込み>を見つければ、<>に挟まれた文字は トークンに変化します。 bodyも同様に<から順に読み込まれ,Start Tagになります。
Hi!という文字列は一字ごとにCharacter Tokenに変換。 次の<が見つかるまでCharacter Tokenへの変換が続きます。 /のを見つけると、End Tag Tokenに変換していきます。
②HTMLの解析(parse) Bytes ① Charracters ② Tokens ③ Nodes ④ DOM
⑤ ▷ ▷ ▷ ▷ TokenからNodeへの変換 Nodeとは? ①ノードとはオブジェクトである。 ②HTMLの要素やその属性,要素に含まれたテキスト
②HTMLの解析(parse) 【ノードとはオブジェクトである】 「トークンからノードに変換する際、プロパティとルールが定義さ れる」 →プロパティ(値、フィールド、変数) →ルール(メソッド) つまりオブジェクト指向のように振る舞えるように形作る。 例)appendChild や replaceChild
や removeChild というメソッド が定義される。
②HTMLの解析(parse) 「DOM,Node,Element,って何がちがうの?」 DOMとは木「DOMツリーと言われる階層構造を持ったオブジェク トを物として扱うモデル」 Nodeとは葉「DOMを構成する一つ一つの要素」 Elementとはある一種の葉「Nodeの種類の一種」 例)Document,Element,Attr,CharacterData,,,
None
②HTMLの解析(parse) Bytes ① Charracters ② Tokens ③ Nodes ④ DOM
⑤ ▷ ▷ ▷ ▷ DOMの構造化 Document Object Model →データ構造として扱う ここで初めてJavaScriptが使えるようになります。
この構造がDOMであり、一つ一つがNodeです!!
参照(https://developers.google.com/web/fundamentals/performance/critical-rendering-path/constructing-the-object-model?hl=ja)
もともとは0と1の数字の羅列です。 そこにどうやって意味付けしていくのか、 ルールを作ったのかを知ることで より自身の学びにつながっていきます。 まとめ
御清聴ありがとう ございました! 今回のLTで新しいことを学んでいただけたら幸いです。