浏览器加载和渲染html的顺序,
IE下载的顺序是从上到下,渲染的顺序也是从上到下,下载和渲染是同时进行的。
在渲染到页面的某一部分时,其上面的所有部分都已经下载完成(并不是说所有相关联的元素都已经下载完成)如果遇到语义解释性的标签嵌入文件(JS脚本,CSS样式),那么此时IE的下载过程会启用单独连接进行下载。并且在下载后进行解析,解析过程中,停止页面所有往下元素的下载。阻塞加载样式表在下载完成后,将和以前下载的所有样式表一起进行解析,解析完成后,将对此前所有元素(含以前已经渲染的)重新进行渲染。
简单的说就是先下载页面,遇到js,css,停止页面下载,另开一个通道下载这些样式,等下载完成之后,进行解析,解析完成后,将页面之前的元素,包括已经渲染的,重新进渲染。如果JS和CSS中有重定义,后定义的函数将覆盖前定义函数。
2JS的加载
不能并行下载和解析(阻塞下载)当引用了JS的时候,浏览器发送一个jsrequest就会一直等待该request的返回,因为浏览器需要一个稳定的DOM树结构,而JS中很有可能有代码直接改变了DOM树结构,比如使用document.wirte或appendChild,甚至是直接使用的location.href进行跳转,浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以就会阻塞其他的下载和呈现