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