CSS压缩和组合/ js缩小 - 在运行时或构建时更好吗?

Mar*_*aud 6 javascript css compression asp.net caching

我必须提出压缩,版本(用于缓存目的)的解决方案,并可能组合我们的JS和CSS文件,到目前为止我已经看到了两种主要方法:

1)在构建时:作为MSBuild任务或类似.2)在运行时动态:作为.js和.css文件的自定义HTTPHandler(我们是ASP.NET btw),这样的结果会在你的页面中结束:

<link rel="stylesheet" type="text/css" href="~/StyleSheetHandler.ashx?stylesheets=~stylesheets/master.css" /> 
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供每个人的专业和信息吗?就个人而言,我无法看到动态地做这一点并在每次请求时浪费CPU周期(我猜你只是第一次做工作然后缓存,但仍然)但我感觉我可能遗失了什么?

谢谢!标记.

Jos*_*ger 8

我认为一个好的方法是针对不同的环境使用不同的策略:

  • 没有压缩开发(用于开发和调试)
  • 测试环境的运行时压缩(灵活,不是性能关键)
  • 用于分段和生产的构建时压缩(经过测试,性能至关重要)

我有一些使用YUI压缩器进行Javascript和CSS的经验,并且已经学习(很难)测试缩小的JS和CSS确实非常重要.

创建静态缩小的JS和CSS文件作为生产构建的一部分具有以下优点:

  • 他们经过测试
  • 静态文件,可以在没有ASP.NET开销的情况下提供
  • 可以浏览器缓存
  • 应该是webserver-gzipped