哪种组合css技术?

哪种组合css技术?,css,Css,在组合CSS文件时,您认为以下哪一项是最好的方法: 假设我有一个master.css文件,该文件在我的网站(page1.aspx,page2.aspx)的所有页面上使用 Page1.aspx-一个特定的页面,它有一些唯一的css,只在该页面上使用,因此我创建了一个Page1.css,它还使用另一个css grids.css Page2.aspx-另一个与网站上所有其他页面不同的特定页面,与page1.aspx不同,我将此页面命名为Page2.aspx,并生成一个Page2.css。此页面不使用g

在组合CSS文件时,您认为以下哪一项是最好的方法:

假设我有一个master.css文件,该文件在我的网站(page1.aspx,page2.aspx)的所有页面上使用

Page1.aspx-一个特定的页面,它有一些唯一的css,只在该页面上使用,因此我创建了一个Page1.css,它还使用另一个css grids.css

Page2.aspx-另一个与网站上所有其他页面不同的特定页面,与page1.aspx不同,我将此页面命名为Page2.aspx,并生成一个Page2.css。此页面不使用grids.css

因此,您会将脚本组合为:

选项1: 组合脚本 csshandler.axd?d=master.css,page1.css,grids.css 访问第1页时
结合 剧本 csshandler.axd?d=master.css,第2页css 访问第2页时

优点:特定于页面,渲染速度更快,因为只需匹配该页面的选择器,无需匹配未使用的选择器

缺点:master.css+特定页面的多种组合,因此必须为每个页面下载master.css

选项2: 合并所有脚本,无论页面是否需要它们

csshandler.axd?d=master.css,page1.css,page2.css,grids.css (母版,第1页和第2页)

这样它就被缓存为一个。问题是渲染可能会变慢,因为它必须尝试将css中的每个选择器与页面上的选择器(甚至是缺少的选择器)匹配,因此在不使用grids.css的page2.aspx的情况下,需要解析grids.css中的选择器,以查看它们是否在page2中,这意味着渲染会变慢

好处:无论您访问哪个页面,都会下载并缓存一个文件

缺点:未使用的选择器需要由浏览器解析

选项3: 将主文件保留在自己的页面上,并且只合并其他脚本(这样做的好处是,主文件在所有页面上都使用,有可能缓存了主文件,因此不需要继续下载

csshandler.axd?d=Master.css
csshandler.axd?d=page1.css,grids.css

优点:无论您访问哪个页面,都可以缓存master.css文件。由于应用了特定页面,所以没有太多未使用的选择器

缺点:最初至少需要发出2个HTTP请求

你们觉得怎么样

干杯


DotnetShadow

我个人会说选项2-合并所有脚本。随着网站的增长,页面数量将增加,跟踪哪些CSS文件将无法管理。你可能会认为某些CSS只在一个页面上使用,但我打赌将来不会这样


一旦用户访问了一个页面,他们将拥有所有CSS,而其他页面将大大加快速度。(尽管您可能希望单独优化您的主页).想想web应用程序,而不是网页。

你用Firebug或类似的东西测量过网页加载时间吗?我问这个问题是因为我很好奇它是否会产生很大的影响

不管怎样,我只是想告诉你一个由yahoo开发的CSS框架。他们有一个非常干净的结构,也许你想以类似的方式设计自己的框架。他们使用重置CSS文件为每个浏览器创建相同的先决条件,我发现这是一件聪明的事情


可能会有帮助。

哦,你可能想看看如何管理复杂的CSS。感谢你提出的关于将网站视为web应用程序与网站的伟大建议。肯定会研究LESSCS。之所以出现这个问题,是因为我在看Jason Weber的MIX 10视频(35:40)他在IE9上工作,他提到有这么多人将不同页面上没有使用的样式组合在一起,以及这对浏览器呈现的影响,因为所有选择器都需要与页面etcTrue上的元素匹配,但只有分析才能告诉您是否有问题。根据经验,网络请求几乎总是较慢的比浏览器所做的还要多。很高兴看到IE团队提供世界其他地方的性能提示……我将不得不研究分析并查看YUI的内容。谢谢