不要使用@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
投稿

猜你喜欢

  • Python 实现图像特效中的油画效果

    2021-04-10 18:29:49
  • 基于TensorBoard中graph模块图结构分析

    2021-01-11 16:58:52
  • 有效地使用 SQL事件探查器的提示和技巧

    2009-01-15 13:39:00
  • MySQL存储过程的查看与删除实例讲解

    2024-01-23 06:14:11
  • JavaScript eval() 函数介绍及应用示例

    2024-04-19 10:00:01
  • python适合人工智能的理由和优势

    2021-08-10 11:01:12
  • 本机安装PaddlePaddle安装指南及步骤详解

    2023-12-18 19:35:57
  • javascript动态添加表格数据行(ASP后台数据库保存例子)

    2024-02-27 11:17:31
  • asp form 表单验证函数

    2011-04-04 11:10:00
  • vue中v-for通过动态绑定class实现触发效果

    2024-04-09 10:45:21
  • Python连接mysql数据库及简单增删改查操作示例代码

    2022-03-10 18:01:57
  • python实现邮件发送功能

    2023-10-11 02:27:09
  • js判断undefined类型,undefined,null, 的区别详细解析

    2024-05-09 10:34:26
  • Python机器学习库scikit-learn入门开发示例

    2022-10-15 11:40:24
  • 关于 Flash Banner 设计的建议

    2010-02-02 18:19:00
  • PyTorch中Torch.arange函数详解

    2022-04-29 02:30:50
  • python redis连接 有序集合去重的代码

    2023-10-23 21:24:32
  • echarts动态获取Django数据的实现示例

    2022-08-26 02:29:06
  • python去除拼音声调字母,替换为字母的方法

    2022-02-13 10:43:55
  • Golang常用环境变量说明与设置详解

    2024-05-13 10:43:40
  • asp之家 网络编程 m.aspxhome.com