不要使用@import[译]

作者:vocal 来源:前端观察 时间:2009-05-01 12:01:00 

Translate From:stevesouders
原文:高性能网站设计:不要使用@import

在高性能网站设计的第五章,我简要的提到@import 对于网站的性能有某些负面的影响,然后我在 Web 2.0 Expo 的演讲上深入探讨了这个问题,并创建了一些测试页面和HTTP瀑布状图表,这些在下面将会用到。对于这个问题的底线是:如果你想样式表并行载入,以使页面更快,请使用LINK 替代@import。

LINK vs. @import

大家都知道,有两种方法可以在你的页面中导入样式文件。你可以使用LINK标签:

 <link rel='stylesheet' href='a.css' />

或者使用@import 方法:

<style>
@import url('a.css');
</style>

我更喜欢使用LINK,因为它比较简单——而如果使用@import的话,你必须时刻记得要将@import放到样式代码的最前面,否则它将会不起作用。而且事实证明,避免使用@import 同样对网站性能有益。

@import @import

我将探究LINK和@import两种方式的不同。在这些例子中,有两个样式表: a.css和b.css。每个样式表都配置为需要花费两秒钟来下载,这样就比较容易的看出来它们对网站性能的影响。第一个例子使用@import 导入两个样式文件。这个例子,我们称之为@import @import,HTML代码可以写成这个样子:

<style>
@import url('a.css');
@import url('b.css');
</style>

如果你一直这种方式使用@import,那么就没有什么性能问题,尽管这可能会因为竞态条件而可能引起JavaScript错误。两个样式文件将同时并行下载,就像在图一中显示的那样(第一个小的请求是HTML该文件) 。问题出现在当@import嵌套入其它样式中或者和LINK联合使用的时候。

图一:一直使用@import 是可以的

LINK @import

这个LINK @import的例子使用LINK加载a.css,使用@import导入b.css:

<link rel='stylesheet' type='text/css' href='a.css' />
<style>
@import url('b.css');
</style>

在IE中(在6, 7, 和8中测试过),这会导致样式表文件逐个加载,正如图二所示。并行下载资源是加速页面的一个关键。就像图示的那样,这种方法在IE中会导致页面需要更多的时间才能加载完成。

图二. 在IE中link混合@import 会破坏并行下载

标签:import,设计,标签
0
投稿

猜你喜欢

  • 地图网站的需求功能与体验

    2009-03-01 11:15:00
  • PSD to CSS —— CSS布局实战新概念系列教程

    2009-05-30 16:40:00
  • css中的类和伪类

    2008-06-12 13:12:00
  • 设计可以量化吗?

    2009-06-12 12:12:00
  • JavaScript table的排序类

    2008-10-06 12:56:00
  • 安装MySQL错误归档处理

    2008-12-22 14:50:00
  • 使用模板实现ASP代码与页面分离

    2008-09-12 16:07:00
  • MySQL最新漏洞分析

    2012-07-11 15:41:10
  • XML入门的常见问题(二)

    2008-09-05 17:20:00
  • 如何用表单的方式推送请求的信息?

    2010-06-16 09:47:00
  • 菜鸟课堂:玩转MySQL数据库 性能优化八法

    2009-03-25 14:44:00
  • asp get和post数据接收过滤

    2011-04-06 10:52:00
  • display:inline-block的深入理解

    2007-05-11 17:03:00
  • 认识Javascript数组

    2009-08-27 15:26:00
  • 长文章自动分页类

    2008-09-10 12:11:00
  • 成为一个顶级设计师的第一准则

    2008-04-18 10:29:00
  • 奇淫技巧和西天取经

    2009-08-24 12:34:00
  • [翻译]标记语言和样式手册 Chapter 11 打印样式

    2008-02-11 18:44:00
  • W3C 接连推出 7 个 HTML 草案

    2010-03-10 10:37:00
  • 如何实现让每句话的头一个字母都大写?

    2010-05-24 18:26:00
  • asp之家 网络编程 m.aspxhome.com