gpt4 book ai didi

c# - 在 .net 中缩小和合并文件

转载 作者:IT王子 更新时间:2023-10-29 04:34:42 25 4
gpt4 key购买 nike

我正在考虑围绕我的 javascript/css 实现一些性能优化。特别是希望实现此类的缩小和组合。我正在开发 .net/c# 网络应用程序。

我有几个选项,并正在寻找对每个选项的反馈:

第一个是我遇到的 Chirpy 这个聪明的工具,它通过 visual studio 组合、缩小等 -> http://chirpy.codeplex.com/这是一个 visual studio 插件,但由于我在团队环境中,所以这个工具并不理想。

我的下一个选择是使用 Msbuild 任务 ( http://yuicompressor.codeplex.com/ ) 来缩小文件并合并它们(可能从 xml 文件中读取需要合并的内容)。虽然这有助于缩小精细度,但我担心的是我将不得不维护必须合并的内容,这可能会让人头疼。

第三个选项是仅使用 msbuild 任务进行缩小,并在运行时使用一些辅助类,按页面合并文件。这将合并文件,为其命名并为其添加版本。

我可以考虑其他选择吗?我对最后一个选项的担心是它可能有性能问题,因为我必须从本地驱动器打开文件,读取其内容,然后合并文件。这是运行时的大量处理。我在看类似 Squishit 的东西 - https://github.com/jetheredge/SquishIt/downloads这会在运行时缩小文件,但我会考虑在编译时执行此操作。

那么对我的方法的任何反馈都会很好吗?如果第三个选项不会导致性能问题,我会朝着它迈进。

最佳答案

我们已经对几个 ASP.NET 网络应用程序做了类似的事情。具体来说,我们使用 Yahoo Yui compressor ,它有一个 .NET 库版本,您可以在您的应用程序中引用它。

我们采用的方法是在运行时生成必要的合并/缩小文件。我们将所有这些逻辑包装到一个 ASP.NET 控件中,但这不是必需的,具体取决于您的元素。

  • 第一次请求页面时,我们会处理包含的 JS 和 CSS 文件列表。在一个单独的线程中(因此原始请求会立即返回),然后我们将包含的文件合并在一起(1 个用于 JS,1 个用于 CSS),然后应用 Yui 压缩器。
  • 然后将结果写入磁盘以供将来快速引用
  • 在后续请求中,页面首先查找缩小版本。如果找到,它只会提供这些服务。如果没有,它会再次经历这个过程。

锦上添花:

  • 出于调试目的,如果查询字符串 ?debug=true 存在,合并/缩小的资源将被忽​​略,而是提供原始的单个文件(因为调试优化的 JS 可能很困难)

我们发现这个过程非常有效。我们将它构建到一个库中,以便我们所有的 ASP.NET 站点都可以利用它。如果每个页面都有不同的依赖关系,构建后脚本可能会变得复杂,但运行时可以很容易地确定这一点。而且,如果有人需要快速修复 CSS 文件,他们可以这样做,删除文件的合并版本,该过程将自动重新开始,无需使用 MSBuild 或 NAnt 进行构建后处理。

关于c# - 在 .net 中缩小和合并文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4338570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com