浏览器加载策略
一、各浏览器加载的顺序
二、各浏览器的并行数量
三、浏览器对CSS selector的匹配
四、优化你的CSS
五、图片加载顺序(后叙)
各浏览器的顺序
<head>
<link href="header1.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="header1.js"></script>
</head>
<body>
   <img src="body1.jpg" alt="" />
   <p>body2.jpg</p>
   <img src="body2.jpg" alt="" />
   <script type="text/javascript" src="body2.js"></script>
   <link type="text/css" rel="stylesheet" href="body2.css" />
   <img src="body3.jpg" alt="" />
   <img src="body4.jpg" alt="" />
   <link type="text/css" rel="stylesheet" href="body3.css" />
   <script type="text/javascript" src="body3.js"></script>
   <img src="body5.jpg" alt="" />
   <img src="body6.jpg" alt="" />
</body>
</html>
各浏览器的顺序




FF7.0
各浏览器的顺序




FF7.0
各浏览器的顺序




FF7.0
各浏览器的顺序




FF7.0
各浏览器的顺序




FF7.0
各浏览器的顺序




IE9.0
各浏览器的顺序




Chrome
各浏览器的顺序




FF7.0
各浏览器的顺序




FF7.0
各浏览器的顺序




IE9.0
各浏览器的顺序




Chrome
各浏览器的顺序
总结:
1、所有浏览器都是先加载html的,所以要尽量精简html,
做到结构、表现、行为分离;
2、考虑JS阻塞加载其它元素。
3、各浏览器对CSS 和JS 加载是一样的。




   Chrome
各浏览器的并行数量
Browser HTTP/1.1 HTTP/1.0
IE 6,7     2       4
IE 8       6       6
Firefox 3+ 6       6
Safari 3+  4       4
Chrome 3+ 4         4
Opera 10+ 4         4
浏览器对CSS selector的匹配
对于一个selector,是从右至左匹配的,如
div#divBox p span.red{ color:red;….}

浏览器先找到所有class为red 的span,然后再在这些span里,
找出父容器为p的元素,再找出父容器中id为divBox的div
的p。
浏览器这样做,是为了尽早过滤掉一些无关的样式规则
和元素。

firefox称这种查找方式为keyselector(关键字查询),所谓的
关键字就是样式规则中最后(最右边)的规则,上面的key
就是span.red。
优化你的CSS
1、不要在ID选择器前使用标签名:因为ID选择器是
唯一的,加上div反而增加不必要的CSS匹配;
2、不要在class选择器前使用标签名:但如果你定义
了多个.red,而且在不同的元素下是样式不一样,则
不能去掉;
3、尽量少使用层级关系:
4、使用class代替层级关系:
5、在css渲染效率中id和class的效率是基本相当的:
class在第一次载入中被缓存,在层叠中会有更加好的
效果,在根部元素采用id会具有更加好(id有微妙的
速度优势)

浏览器加载原理