2

は asp.Net MVC 4 プロジェクトを持っています。私のプロジェクトでは大きなレポートのみをレンダリングします (テーブル html 要素を使用します)。# 出力? またはHTMLコードを書くときにすべての空白を削除します.それは、展開する前にビジュアルスタジオですべての空白を手動で削除することを意味します

みんな助けて?

4

1 に答える 1

1

ランタイム ソリューション (リンクで説明) が本番環境で問題にならない場合は、答えを得ようとしていると思いますよね? さて、ここで述べたように:

String.Replace .NET Framework のメモリ効率とパフォーマンス

独自のベンチマークを行う必要があります。確かに、big report多くのユーザーの a の文字を置き換えても、パフォーマンスが低下することはありません。

しかし、私の提案は実行時に行うことです。多分AOPフィルターの方が良いでしょう。一度に、すべての応答が終了すると (いくつかの文字列を置き換える同様の機能を実行しています)。

public virtual void OnResultExecuted(ResultExecutedContext filterContext)
{
  // Change result as needed
  filterContext.HttpContext.Response.Filter = 
    new ResponseStream(filterContext.HttpContext.Response.Filter);
}

そして、ここにストリームがあります

protected class ResponseStream : MemoryStream
{
    readonly Stream _stream;
    public ResponseStream(Stream stream)
    {
        _stream = stream;
    }

    public override void Write(byte[] buffer, int offset, int count)
    {
        //base.Write(buffer, offset, count);
        string html = System.Text.Encoding.Default.GetString(buffer);

        // TODO - here remove spaces...

        byte[] outdata = System.Text.Encoding.Default.GetBytes(html);

        //write bytes to stream
        _stream.Write(outdata, 0, outdata.GetLength(0));
    }
}

2 番目に考えられるのは、 IIS で動的圧縮を有効にすることです (IIS 7.0 を使用している場合はhttp://technet.microsoft.com/en-us/library/cc753681%28v=ws.10%29.aspxを参照してください) 。

于 2012-11-30T05:05:44.287 に答える