Open a7650 opened 5 years ago
浏览器渲染的前提是生成渲染树,而且html和css解析完之后生成dom和cssom(两者同时解析),然后这两者合在一起生成render tree,生成render tree的时机是在DOMContentLoaded触发之后。 js会阻止dom的解析,dom和css都解析完才会渲染,所以js阻止渲染,所以js应该放在页面底部,加快生成render tree。 css也会阻止js的解析,因为js会等待其前面的css下载执行后才会执行,所以css放在js前会阻止js的解析,js的解析又阻止dom解析,进而又阻止页面渲染。所以如果js和css都放在头部的话,js应放在css前面。 浏览器在遇到script标签时,会触发页面渲染。
文档1 文档2
浏览器渲染的前提是生成渲染树,而且html和css解析完之后生成dom和cssom(两者同时解析),然后这两者合在一起生成render tree,生成render tree的时机是在DOMContentLoaded触发之后。 js会阻止dom的解析,dom和css都解析完才会渲染,所以js阻止渲染,所以js应该放在页面底部,加快生成render tree。 css也会阻止js的解析,因为js会等待其前面的css下载执行后才会执行,所以css放在js前会阻止js的解析,js的解析又阻止dom解析,进而又阻止页面渲染。所以如果js和css都放在头部的话,js应放在css前面。 浏览器在遇到script标签时,会触发页面渲染。
文档1 文档2