-
HTTP Response Received
-
HTML Parsing Begins
-
Link Preload Requests Processed: Preloading critical assets like stylesheets, scripts, and
fonts.
-
Prefetch Requests Sent: Requests sent with low priority and processed async and non blocking
for future navigation or use.
-
Downloading normal CSS and Other Resources
-
CSS Parsing and CSSOM Construction (Render-blocking)
-
Render Tree Construction (Dependent on CSSOM and DOM)
-
Layout Calculation (Dependent on Render Tree)
-
Downloading and Execution of Synchronous Scripts (Render-blocking)
-
Async Scripts Processing: Downloaded in parallel and executed as soon as they are downloaded
(Can halt parsing temporarily).
-
Deferred Scripts Processing: Downloaded in parallel but executed only after HTML parsing is
complete.
-
HTML Parsing Complete: All HTML has been parsed.
-
Subresources Load: Eagerly loaded images contribute to FCP. (Non-blocking for HTML parsing).
Subresources that are not deferered can block rendering. The loading of these subresources can
occur in parallel with HTML parsing.
-
Document.readyState: loading: The document is still loading.
-
DOMContentLoaded Event
-
Document.readyState: interactive: DOM is fully interactive, but stylesheets, images, frames,
and subframes might still be loading.
The relationship between FCP and the DOMContentLoaded event can vary depending on how a page
is structured and the nature of its resources. In some cases, FCP may happen before the
DOMContentLoaded event if the browser is able to render meaningful content quickly. In other
cases, particularly on more complex sites where scripts and styles significantly affect
rendering, FCP might occur after the DOMContentLoaded event.
-
First Contentful Paint (FCP): First content from DOM is painted.
-
DOMContentLoaded Handlers Execute
-
Largest Contentful Paint (LCP): This metric marks the point at which the largest content
element in the viewport becomes visible.
-
Lazy-loaded Images in viewport
-
Window.onload Event (Indicates end of all blocking resources)
-
Lazy-loaded Images not in viewport