惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

I
InfoQ
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
B
Blog
Jina AI
Jina AI
人人都是产品经理
人人都是产品经理
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 聂微东
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
大猫的无限游戏
大猫的无限游戏
U
Unit 42
J
Java Code Geeks
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC

博客园 - BearRui(AK-47)

产生唯一随机码的方法分析。 URL中允许携带sessionid带来的安全隐患。 JS 实现完美include - BearRui(AK-47) - 博客园 基于模板的excel导出 实现if elseif else的jsp标签。 - BearRui(AK-47) 记一复杂页面的前端优化(2) - 其他优化 - BearRui(AK-47) 记一复杂页面的前端优化(1) - 不一样的延迟加载 名站技术分析 — tudou网首页下列菜单的弹出效果 LESS 让css也支持变量,运算符,include,嵌套规则等等 CSS技巧 — 不使用图片实现圆角、阴影、渐变等功能 名站技术分析 — facebook奇特的页面加载技术 了解CSS的查找匹配原理,让CSS更简洁、高效 让ajax更加友好,实时显示后台处理进度。 - BearRui(AK-47) - 博客园 名站技术分析 - 浅谈tudou.com首页图片延迟加载的效果 - BearRui(AK-47) 高性能WEB开发(11) - flush让页面分块,逐步呈现 WEB高性能开发(10) - 疯狂的HTML压缩 该如何加载google-analytics(或其他第三方)的JS web高性能开发系列随笔 管理好程序中的DLL - BearRui(AK-47) - 博客园
[翻译] IE7,IE8 BUG导致CSS下载二次。 - BearRui(AK-47)
BearRui(AK-4 · 2010-05-28 · via 博客园 - BearRui(AK-47)

      为了压缩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="//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="//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: 虽然标题写的是翻译,但看了原文的就知道,其实根本不是翻译,是看了原文后本人根据原文进行了一翻测试,然后把测试结果写出来。

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

posted on 2010-05-28 09:05  BearRui(AK-47)  阅读(3794)  评论()    收藏  举报