37

asp.net アプリケーションから送信される HTML 応答のサイズを小さくするにはどうすればよいですか?

私が所有していないコントロールを使用していますが、空白を含む出力が生成されます。タイミングを改善するために、Googleが行う方法と同じように(ソースを表示www.google.com)、ページのHTML出力全体を縮小することに興味があります。

私のためにこのようなことを行うことができる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 に答える
6

ソーンの提案にコメントしたい(しかし、スタックオーバーフローは初めてだ)。

  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 ミニファイヤ コマンド ライン ツール

使用法: ここここ

ただし、このツールには問題があります。1 行 (//) のコメントが残り、Razor の解析で問題が発生します。これは、1 行のコメントが次のように C# ブロック内に配置されるためです。

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

この時点から行の縮小出力の残りが Razor パーサーによって無視されるため、ブロックの終了 "}" が見つからなかったことを示すエラーが発生します。

この問題に対する私の回避策は、これらのコメントを出力から 完全に削除することでした。このように動作します。これを行うには、145 行目から RegexOptions.SingleLine を削除するだけです。

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