37

我们可以通过哪些方法来减小 asp.net 应用程序发送的 HTML 响应的大小?

我正在使用不属于我的控件,它会产生带有空格的输出。我对缩小页面的整个 HTML 输出很感兴趣,就像 google 所做的那样(查看源代码 www.google.com)以改进时间。

是否有任何可用于 ASP.NET 的实用程序类可以为我做这些事情?

4

6 回答 6

32

无需在运行时执行此操作。因为它可以在编译时完成。

详情: http: //omari-o.blogspot.com/2009/09/aspnet-white-space-cleaning-with-no.html

于 2010-01-27T13:43:28.397 回答
20

尝试此处描述的 HTTP 模块:http: //madskristensen.net/post/a-whitespace-removal-http-module-for-aspnet-20

于 2008-10-31T21:30:04.240 回答
10

对于 Microsoft .NET 平台,有一个名为WebMarkupMin的库,它可以生成 HTML 代码的缩小。对于每个 ASP.NET 框架都有自己的模块:

文档位于 - http://webmarkupmin.codeplex.com/documentation

于 2014-09-16T11:54:11.833 回答
6

我想评论 Thorn 的建议(但我是堆栈溢出的新手)。

  1. 链接代码 (omari-o.blogspot.com) 不支持 MVC4,虽然代码是开源的,但由于 MVC3 和 MVC4 之间的制动变化,它不能轻易升级。

  2. 在运行时可能会有空格写入 http 结果,只有实际站点的开发人员才能知道。因此,模板文件 (aspx) 的静态缩小根本不是万无一失的。gius 建议的动态缩小应该用于保证正确删除空格,不幸的是这会产生运行时计算成本。如果代码动态将空格写入输出,则必须动态删除。

于 2013-07-22T07:59:58.863 回答
3

接受的答案不适用于 MVC 4,因此这里有一个类似的库,在构建时会缩小https://github.com/jitbit/HtmlOptimizerMvc4

于 2014-11-20T01:07:58.880 回答
2

只需添加另一个我没有在此处列出的选项,这是我推荐使用的选项:

Html minifier 命令行工具

用法: 这里这里

但是,此工具存在一个问题:它会留下单行 (//) 注释,并且会导致 Razor 解析出现问题,因为单行注释放置在 C# 块中,如下所示:

@{
  ... 
  ...
  // anything
  ...
}

将导致从这一点开始,Razor 解析器忽略该行的缩小输出其余部分,从而引发错误,指出它无法找到该块的关闭“}”。

我针对此问题的解决方法是从输出中完全删除这些注释。 这样就可以了。为此,只需从第 145 行删除 RegexOptions.SingleLine:

htmlContents = Regex.Replace(htmlContents, @"//(.*?)\r?\n", ""/*, RegexOptions.Singleline*/);
于 2015-02-24T09:54:13.513 回答