IE7,IE8 BUG导致CSS下载二次。

作者: nick 分类: web 发布时间: 2010-06-22 15:42 ė 61条评论

为了压缩html代码,我们常常会去掉”HTTP或者HTTPS”,即去掉url中的http(s)协议头,以节省空间,但这样使用后发现 IE7,IE8会出现对同1个CSS加载2次的BUG。

测试:
正常的CSS加载代码写法:
<link rel=”stylesheet” href=”http://www.test.com/main.css” type=”text/css” />
这样写大家都知道加载是不会有任何问题的,所以也不贴监控图解释了
在经过html压缩后,代码变成如下:
<link rel=”stylesheet” href=”http://www.cnblogs.com//www.test.com/main.css” type=”text/css” />
压缩后,心里暗爽,html代码又小了,运行程序也没发现啥问题。
在一次使用httpwatch监控的时候(IE8),竟然发现了严重的BUG,测 试代码如下(加上了js和image为了方便测试):

测试:
正常的CSS加载代码写法:

<link rel=”stylesheet” href=”http://www.test.com/main.css” type=”text/css” />

这样写大家都知道加载是不会有任何问题的,所以也不贴监控图解释了。

在经过html压缩后(去掉http协议头),代码变成如下:

<link rel=”stylesheet” href=”http://www.cnblogs.com//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" href="http://www.cnblogs.com//www.test.com/css/main.css" type="text/css" /> 
		<script type="text/javascript" src="http://www.cnblogs.com//www.test.com/css/1.js"></script> 
	</head>
	<body>
		<h1>test</h1>
		<img src="http://www.cnblogs.com//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" href="http://www.test.com/css/main.css" type="text/css" /> 
		<script type="text/javascript" src="http://www.cnblogs.com//www.test.com/css/1.js"></script> 
	</head>
	<body>
		<h1>test</h1>
		<img src="http://www.cnblogs.com//www.test.com/css/d1.gif" />
	</body>

监控图:

一切正常了。

总结:

上面问题在IE8,IE7中都会出现,IE6、firefox、chrome都是正常的,而且只会对css有这个问题,js、image都正常,产生 根本原因不详。

如果本机只有1个浏览器,不好进行测试,可以使用www.webpagetest.org在线进行测试,www.webpagetest.org同 时支持IE7和IE8进行测试。

本文出自 传播、沟通、分享,转载时请注明出处及相应链接。

本文永久链接: https://www.nickdd.cn/?p=800

发表评论

您的电子邮箱地址不会被公开。

Ɣ回顶部