资源加载顺序
在加载web资源时,首先下载html文件,进行html解析,在遇到javascript或css标签时,启动相应的解析机处理。
当遇到外部资源时(如<script src='xxx'>)启动网络接口程序,下载对应的资源并交由相应的解析机处理。
在执行javascript的解析的时候,为了保证javascript操作DOM的准确性,此时DOMTree的构建工作必须被中断掉(当然对于HTML资源序列化和输入DOM构建机动作可以同步进行,浏览器此时也可以加载外部资源、排版、显示等),直到javascript的解析动作完成,之后可以继续HTML的解析和DOMTree的构建。
我们知道CSS不会影响到DOMTree的构建,但是如果此时javascript需要取得某些样式信息,必然需要CSS已经被解析,为了防止javascript取CSS出现未定义的问题,通常在执行CSS解析的时候,javascript的执行会被阻塞。对于webkit而言,webkit本身对此进行了优化,即在javascript可能会用到某些样式而此时样式尚未解析完毕时阻塞javascript解析。