web-dev-qa-db-ja.com

Response.End()とResponse.Flush()の違い

私はこのようなコードを持っています:

context.HttpContext.Response.Clear();
            context.HttpContext.Response.Write(htmlString);              
            context.HttpContext.Response.End(); 

しかし、ページが読み込まれると、閉じられていないhtmlタグがページに表示されます。 Response.End()をResponse.Flush()で置き換えると正常に動作します。 Response.End()とResponse.Flush()の違いは何ですか?

23
Cipiripi

Response.Flush

現在バッファリングされているすべての出力を強制的にクライアントに送信します。 Flushメソッドは、リクエスト処理中に複数回呼び出すことができます。

Response.End

現在バッファリングされているすべての出力をクライアントに送信し、ページの実行を停止し、EndRequestイベントを発生させます。

Response.Writeの後にページで処理を行わず、ページの処理を停止する場合は、このコードを使用してみてください。

    context.HttpContext.Response.Clear();
    context.HttpContext.Response.Write(htmlString);              
    context.HttpContext.Response.Flush(); // send all buffered output to client 
    context.HttpContext.Response.End(); // response.end would work fine now.
29
DotNetUser