IE7,IE8 BUG导致CSS下载二次的如何解决方法

在树林里,许多的小鸟在自由自在欢乐地飞翔着,高兴起来,便唱出清脆悦耳的曲子,和煦的春风吹拂着小河,河面上波光粼粼。我忽然被一阵悦耳、动听的笛声所牵动,放眼望去,一群顽皮的小孩子正用垂柳的茎做柳笛呢!他们吹出了心里的幸福和快乐。
测试:
正常的CSS加载代码写法:

<link rel="stylesheet" rel="nofollow noopener noreferrer" href="http://www.test.com/main.css" type="text/css" />

这样写大家都知道加载是不会有任何问题的,所以也不贴监控图解释了。
在经过html压缩后(去掉http协议头),代码变成如下:

<link rel="stylesheet" rel="nofollow noopener noreferrer" href="//www.test.com/main.css" type="text/css" />

压缩后,心里暗爽,html代码又小了, 可是用httpwatch监控一下IE8就发现问题了,测试代码如下(加上了js和image为了方便进行比较):
复制代码
代码如下:

<head>
<title>http test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" rel="nofollow noopener noreferrer" href="//www.test.com/css/main.css" type="text/css" />
<script type="text/javascript" src="//www.test.com/css/1.js"></script>
</head>
<body>
<h1>test</h1>
<img src="//www.test.com/css/d1.gif" />
</body>

httpwatch监控图:

oh shit,CSS竟然下载了二次,而且第二次还不是用的缓存,仍然响应200状态。

再把连接css代码的href加上http协议头试试:

复制代码
代码如下:

<head>
<title>http test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" rel="nofollow noopener noreferrer" href="http://www.test.com/css/main.css" type="text/css" />
<script type="text/javascript" src="//www.test.com/css/1.js"></script>
</head>
<body>
<h1>test</h1>
<img src="//www.test.com/css/d1.gif" />
</body>

监控图:

一切正常了。

总结:

上面问题在IE8,IE7中都会出现,IE6、firefox、chrome都是正常的,而且只会对css有这个问题,js、image都正常,产生根本原因不详。
如果本机只有1个浏览器,不好进行测试,可以使用www.webpagetest.org在线进行测试,www.webpagetest.org同时支持IE7和IE8进行测试。

原文地址:http://www.stevesouders.com/blog/2010/02/10/5a-missing-schema-double-download/

PS: 虽然标题写的是翻译,但看了原文的就知道,其实根本不是翻译,是看了原文后本人根据原文进行了一翻测试,然后把测试结果写出来。

因为本人英语水平比较差,所以没有直接翻译。

转载请注明出处:http://www.cnblogs.com/BearsTaR/。 禁止商用!

以上就是IE7,IE8 BUG导致CSS下载二次的如何解决方法。朋友在竞争激烈的现代社会里显得日益重要,朋友往往使你更容易成功,也会创造出更多的机遇。更多关于IE7,IE8 BUG导致CSS下载二次的如何解决方法请关注haodaima.com其它相关文章!

标签: 方法 CSS