Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

some description not accurate in the article of 《onload-ondomcontentloaded》 #1842

Open
kkdev163 opened this issue Apr 4, 2020 · 1 comment

Comments

@kkdev163
Copy link

kkdev163 commented Apr 4, 2020

article

article Link 《onload-ondomcontentloaded》

may not accurate

document.readyState becomes interactive right before DOMContentLoaded. These two things actually mean the same.

interactive – the document is parsed, happens at about the same time as DOMContentLoaded, but before it.

reason

if a page containers some "defer" script, then it will cost some time to execute the "defer" script after interactive but before DCL.

Reference

https://calendar.perfplanet.com/2012/deciphering-the-critical-rendering-path/

If you add a script and tag it with “defer”, then you unblock the construction of the DOM: the document interactive state does not have to wait for execution of JavaScript. However, note that this same script will be executed before DCL is fired. Further, recall that JavaScript may query CSSOM, which means that the DCL event may be held until the CSSOM is ready, at which point the script will be executed. In short: we’ve unblocked the “document interactive” state, but we’re still potentially blocking DCL.

https://html.spec.whatwg.org/multipage/dom.html#current-document-readiness

The DOMContentLoaded event fires after the transition to "interactive" but before the transition to "complete", at the point where all subresources apart from async script elements have loaded.

@iliakan
Copy link
Member

iliakan commented Apr 4, 2020

Please suggest a PR to fix it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants