来源:自学PHP网 时间:2015-04-14 14:51 作者: 阅读:次
[导读] 曾经研究web前端优化时在网上多处看到这样一条建议,大意是:不要使用 css @import, 因为用这种方式加载css相当于把css放在了html底部。关于这一点,我一直很疑惑: 为什么用@import就等于...
曾经研究web前端优化时在网上多处看到这样一条建议,大意是: 不要使用 css @import, 因为用这种方式加载css相当于把css放在了html底部。 关于这一点,我一直很疑惑: 为什么用@import就等于把css放在了页面底部? 原理是什么?? 但一直不得而知,因为网络文章一大抄,转载的很多,去细究原因的却很少。 直到今天,在google developers看一篇文章时,无意间找到了这个原因,原文如下:
Avoid CSS @importOverview
Using CSS @import in an external stylesheet can add additional delays during the loading of a web page. DetailsCSS @importallows stylesheets to import other stylesheets. When CSS @import isused from an external stylesheet, the browser is unable to downloadthe stylesheets in parallel, which adds additional round-trip timesto the overall page load. For instance, if
The browser must download, parse, andexecute RecommendationsUse the tag instead of CSS @importInstead of @import, use a tag for each stylesheet. This allows the browser to download stylesheets in parallel, which results in faster page load times:
我们确实要避免使用css @import, 但原因却不是什么相当于放在了页面底部,而是这样做会导致css无法并行下载,因为使用@import引用的文件只有在引用它的那个css文件被下载、解析之后,浏览器才会知道还有另外一个css需要下载,这时才去下载,然后下载后开始解析、构建render tree等一系列操作。 星球浏览器在页面所有css下载并解析完成后才会开始渲染页面(Before a browser can begin to render a web page, it mustdownload and parse any stylesheets that are required to lay out thepage. Even if a stylesheet is in an external file that is cached,rendering is blocked until the browser loads the stylesheet from disk.),因此css @import引起的css解析延迟会加长页面留白期。 所以,要尽量避免使用css @import而尽量采用link标签的方式引入。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com