理解浏览器的并发请求

最近看了月光的《为什么要少用 iframe ?》,很受启发,上面不但说了 iframe 的创建比其它包括 scripts 和 css 的 DOM 元素的创建慢了 1-2 个数量级,还说到了 iframe 阻塞页面加载,占用浏览器并发连接数的问题,因为 window 的 onload 事件需要在所有 iframe 加载完毕后(包含里面的元素)才会触发。当 onload 事件加载延迟后,它给用户的感觉就是这个网页非常慢。WebKit 内核浏览器通过 JavaScript 动态设置 iframe 的 src 可以避免这种阻塞情况。

虽说 iframe 用的越来越少了,但这个浏览器链接数的确是个值得注意的地方,随即在网上找了很多资料看,顺便整理出来,和大家共享。首先先来扫个盲,怎么理解浏览器并发链接数呢?

  1. 浏览器发出请求。
  2. DNS进行解析。
  3. 服务器返回请求内容。
  4. 浏览器按顺序分析获取的内容,并且依次获取页面的外链css、外链js、img等,一个下载完再下载下一个。

假设下载一个非常大的图片,那一个链接数肯定会让网页加载的非常慢,因为加载是队列式的,后面的内容被图片给“堵”住了。为此,现代浏览器都支持并发请求,比较老的浏览器,包含 IE6 & 7 和 Firefox 2,只能对一个域名同时打开两个连接。而最新的浏览器,对一个域名同时并发请求数达到了4到8个,这样浏览器就可以同时下载js,css,img了,一般情况下,堵塞的现象就很少了。

浏览器 HTTP 1.1 HTTP 1.0
IE 6,7 2 4
IE 8,9 6 6
Firefox 13 6 6
Chrome 20 6
Safari 5.1.7 6
Opera 11.64 8

上表数据来自SteveSouders.com

继续阅读 理解浏览器的并发请求

国内各IE内核浏览器所调用的IE版本

360浏览器,腾讯浏览器,世界之窗,遨游…IE的套套浏览器真是到处都是,在日常生活中,身边的朋友用的也不少,毕竟很多人对浏览器这东西不了解,在他们眼里,神马内核一点区别都没有,但咱们做前端的对这些东西可得非常了解才行,了解他们用的什么版本的 IE 内核对兼容性问题的准确定位也是很有帮助的。

今天抽空把一些主流套套浏览器在 XP 和 WIN7 下,针对各个 IE 版本,对应的调用 IE 内核的版本进行了小小的测试(怎么那么绕口啊…),下面把数据发出来和大家共享:)

各浏览器采用最新版本:

Maxthon2 — 2.5.18.1000
Maxthon3 — 3.3.9.2000
世界之窗 — 3.6.1.1
搜狗浏览器 — 3.2.0.4716
360极速 — 5.3.0.806
360安全 — 5.0.3.9
腾讯TT — 4.8

XP sp3 环境:

遨游2 遨游3 世界之窗 搜狗高速 360极速 360安全 腾讯TT
IE6 IE6 IE6 IE6 IE6 IE6 IE6 IE6
IE7 IE7 IE7 IE7 IE7 IE7 IE7 IE7
IE8 IE7 IE7 IE8 IE7 IE8 IE8 IE7

WIN7 sp1环境:

遨游2 遨游3 世界之窗 搜狗高速 360极速 360安全 腾讯TT
IE8 IE8 IE8 IE8 IE7 IE8 IE8 IE7
IE9 IE9 IE9 IE9 IE7 IE9 IE9 IE7

继续阅读 国内各IE内核浏览器所调用的IE版本