こんにちは。フロントエンドの現場で「なんでウチのサイト、初期表示がこんなにモタつくんだよ……」と頭を抱えた経験、君にもあるはずだ。Lighthouseを開けば「レンダリングをブロックしているリソースの排除」というお馴染みの赤字警告。
今回は、この厄介者の根源である「CSSOMツリー構築とレンダリングブロッキング」について、ブラウザの裏側の泥臭い動きまで含めて徹底的に紐解いていこう。
教科書的な解説はスルーして、中級からワンランク上のシニアへステップアップするために必要な「ブラウザの機嫌を取る方法」を伝授する。
—
1. なぜCSSはレンダリングをブロックするのか?(ブラウザの裏側の話)
まず、ブラウザが画面を表示するまでのタイムラインを思い出してほしい。
HTMLが降ってくると、メインスレッドはそれを上から順にパース(解析)し、DOM(Document Object Model)ツリーを構築し始める。ここまでは順調だ。
しかし、途中で `` や `
爆速で表示されるファーストビュー
ここにメインコンテンツが続きます。