在asp.net mvc 5应用程序中缩小html的最佳方法

时间:2016-09-28 20:01:06

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

我发现了几篇关于这个主题的文章,但大多数都已经过时了。那么在输出我的视图html时缩小/删除空格的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

我制作了一个名为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响应,但我发现如果在gzipping之前缩小HTML,平均可以减少约11%的响应。在我看来,它仍然值得。

答案 1 :(得分:2)

使用WebMarkupMin:ASP.NET 4.X MVC。安装NuGet包,然后在您的操作方法,控制器上使用MinifyHtmlAttribute,或在RegisterGlobalFilters FilterConfig中注册它。您也可以尝试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。