響應的緩衝輸出:爲了提升服務器的性能,ASP.NET向瀏覽器Write的時候默認並不會每Write一次都會當即輸出到瀏覽器,而是會緩存數據,到合適的時機或者響應結束纔會將緩衝區中的數據一塊兒發送到瀏覽器。html
Response對象的主要成員:瀏覽器
1. Response.Buffer、Response.BufferOutput:通過Reflector反編譯,發現兩個屬性是同樣的。Buffer內部就是調用的BufferOutput。這個屬性用來控制是否採用響應緩存,默認是true。緩存
2. Response.Flush() 將緩衝區的數據發送給瀏覽器。這在須要將Write出來的內容當即輸出到瀏覽器的場合很是適用。案例:大批量數據的導入,顯示正在導入第*條數據,用Thread.Sleep模擬耗時。服務器
下面是模擬數據導入:cookie
新建一個名爲Setup.ashx 文件性能
using System; using System.Web; public class Setup : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/html"; for (int i = 0; i < 20; i++) { System.Threading.Thread.Sleep(500); context.Response.Write("第"+i+"步執行完成<BR/>"); context.Response.Flush();//當即將緩存發給瀏覽器 } } public bool IsReusable { get { return false; } } }
執行結果:編碼
3.Response.Clear() 清空緩衝區中的數據,這樣在緩衝區中的沒有發送到瀏覽器端得數據被清空,不會發送到瀏覽器。url
4.Response.ContentEncoding輸出流的編碼。 code
5.Response.ContentType 輸出流的內容類型,好比是html(text/html) 仍是普通文本(text/plain) 仍是JPEG圖片(image/JPEG)。htm
6.Response.Cookies 返回瀏覽器的Cookie的集合,能夠經過它設置Cookie。
7.Response.OutputStream 輸出流,在輸出圖片、Excel 文件等非文本內容的時候要使用它。
8.Response.End() 終止響應,將以前緩存中的數據發給瀏覽器,End()以後的代碼不會被繼續執行,在終止一些非法請求的時候,好比盜鏈等能夠用End()當即終止請求。
9.Response.Redirect(url) :重定向瀏覽器到新的網址,便可以重定向到站外網址也能夠重定向到站內網址。如Response.Redirect(「http://www.baidu.com」)。
10.Response.SetCookie(HttpCookie cookie) ,想輸出流中更新寫到瀏覽器中的Cookie。若是Cookie存在就更新,不存在就增長,是對Response.Cookies的簡化調用。
11.Response.WriteFile(filename) 向瀏覽器輸出文件。好比Respon.WriteFile(「c:/test.txt」)