響應的緩衝輸出:爲了提高服務器的性能,ASP.NET向瀏覽器Write的時候默認並不會每write一次都會立即輸出到瀏覽器,而是會緩存數據,到合適的時機或者響應結束纔會將緩存區中的數據一起發送到瀏覽器。
Response對象的主要成員:
1.Response.Buffer、Response.BufferOutput:經過Reflector反編譯,發現兩個屬性是一樣的,Buffer內部就是調用的BufferOutput。這個屬性用來控制是否採用響應緩存,默認是True。
2.ResponseFlush()將緩存區中的數據發送給瀏覽器。這在需要講Write出來的內容立即輸出到瀏覽器的場合非常使用。案列:大批量數據的導入,顯示正在導入第*條數據,用Thread .Sleep模擬耗材。
3.Response.Clear()清空緩存區中的數據,這樣在緩存區中的沒有發送到瀏覽器端的數據被清空,不會被髮送到瀏覽器。
4.Response.ContentEncoding輸出流的編碼。
5.Response.ContentType輸出流的內容類型,比如是html(text/html),還是普通文本(text/plain)還是JPEG圖片(image/JPEG).
代碼實例:
1.Response演示代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 30; i++)
{
//把數據放入緩存中,當加載完畢後再發送給瀏覽器
//System.Threading.Thread.Sleep(500);
Response.Write("現在執行的是第:"+i+"步</br>");
//立即將內容發送給瀏覽器,應用在很多網站的安裝程序
//Response.Flush();
// 從第11步開始執行
if (i == 10)
{
Response.Clear();
}
}
}
}
2.Redirect重定向,根據URL傳遞參數來判斷
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class 重定向 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//判斷瀏覽器傳遞的參數,重定向網頁
string str=Request ["q"];
if (str =="1")
{
Response.Write("壹");
}
if (str == "2")
{
Response.Write("貳");
}
else if (string.IsNullOrEmpty("q"))
{
Response.Write("請輸入參數");
}
else if(str=="3")
{
Response.Redirect("Default.aspx");
}
}
}