测试: 正常的CSS加载代码写法: <link rel="stylesheet" href="http://www.test.com/main.css" type="text/css" /> 这样写大家都知道加载是不会有任何问题的,所以也不贴监控图解释了。 在经过html压缩后(去掉http协议头),代码变成如下: <link rel="stylesheet" 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" 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" 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/。 禁止商用!
推荐阅读
说说CSS Hack 和向后兼容(推荐)
增长总是快于消亡导致了浏览器兼容是成了谈不完的话题。说到浏览器兼容,CSS HACK自然而然地被我们想起。今天,我们通常都有一个团队或者将有一个团队的人在一个公司里面做相同的事,需要我们有统一的规范来进行>>>详细阅读
本文标题:IE7,IE8 BUG导致CSS下载二次的解决方法
地址:http://www.17bianji.com/kaifa2/CSS/16560.html
1/2 1