【问题标题】:Best way to minify html in an asp.net mvc 5 application在 asp.net mvc 5 应用程序中缩小 html 的最佳方法
【发布时间】:2017-02-06 23:21:48
【问题描述】:

我看到了几篇关于这个主题的文章,但其中大部分都已经过时了。那么在输出我的视图 html 时缩小/消除空格的最佳方法是什么?

【问题讨论】:

标签: html asp.net-mvc asp.net-mvc-5 minify


【解决方案1】:

使用 WebMarkupMin:ASP.NET 4.X MVC。安装 NuGet 包,然后在您的操作方法、控制器上使用 MinifyHtmlAttribute,或在 FilterConfig 中的 RegisterGlobalFilters 中注册它。你也可以试试CompressContentAttribute。这是维基:https://github.com/Taritsyn/WebMarkupMin/wiki/WebMarkupMin:-ASP.NET-4.X-MVC

如果您使用 CompressContentAttribute,如果您在应用此属性之前使用 gzip,您将看到 Content-Encoding:deflate 标头而不是 Content-Encoding:gzip 标头。

一些测试数字:

没有缩小或压缩: Content-Length:21594

仅缩小:Content-Length:19869

缩小和压缩:Content-Length:15539

您必须进行测试,看看您的更改是否总体上提高了速度。

编辑:

在本地和实时站点上进行详尽的测试后,我得出结论,在我的案例中,使用 WebMarkupMin 缩小和压缩 HTML 会使页面加载时间减慢约 10%。只是压缩(使用CompressContentAttribute)或只是缩小也会减慢它的速度。所以我决定不压缩(使用CompressContentAttribute)或压缩我的HTML。

【讨论】:

  • 显着加快浏览器的处理速度
【解决方案2】:

我构建了一个非常简单的 minifier,名为 RazorHtmlMinifier.Mvc5

当 cshtml Razor 文件转换为 C# 类时,它在编译时运行,因此在运行时不会有任何性能开销。

缩小非常简单,基本上只是用一个替换多个空格(因为有时一个空格仍然很重要,例如<span>Hello</span> <span>World</span><span>Hello</span><span>World</span> 不同)。

源代码是最新的并且非常简单(只是one file with less than 100 lines of code),安装只涉及一个 NuGet 包和更改 Web.config 文件中的一行。

所有这些都是为最新版本的 ASP.NET MVC 5 构建的。


通常,建议使用 gzip 编码来缩小 HTTP 响应,但我发现如果你在 gzip 之前缩小 HTML,你仍然可以获得平均 11% 的缩小响应。在我看来,还是值得的。

【讨论】:

  • 感谢您提供这个 - Meleze.Web 没有削减它!
猜你喜欢
  • 2011-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多