1. 程式人生 > >Response.Flush和Response.BufferOutput

Response.Flush和Response.BufferOutput

首先Response.Buffer屬性現在已經過時,它存在的唯一目的僅僅是為了相容asp。你應該使用Response.BufferOutput屬性來替代它。

Response.Flush方法用來將緩衝區的資料立即輸出到瀏覽器當中。你可以多次呼叫Response.Flush 方法,當這樣使用時,瀏覽器將多次接受資料,而不是僅接受一次資料。

Response.BufferOutput是一個布林值,指示是否緩衝輸出並在整個頁面在伺服器端處理完畢後才傳送緩衝區中的資料。true是其預設值。

伺服器端是否快取資料取決於Response.BufferOutput,當你將Response.BufferOutput的值設為true時,資料會快取到buffer中,並在頁面處理完畢後,將buffer中的內容一次性全部發到客戶端。

如果為false,則不緩衝資料,每執行一個response.write方法,資料就會立即發往客戶端,資料的傳送次數取決於你使用了多少個response.write方法,在這種情況下,使用response.Flush方法是沒有意義的。只用當你將Response.BufferOutput屬性的值設為true時,使用response.Flush方法才有意義。這時伺服器端會將呼叫response.Flush方法時之前的所有response.write方法的資料發往客戶端。

只要將Response.BufferOutput的值設定為true,一定會發送buffer裡的內容,只是早晚、次數的問題,這就取決於Response.Flush方法了。

至於它們的作用,在一個很大很大的網頁中,可以使用Response.Flush方法將資料分批發往客戶端,這樣就可以使瀏覽器先呈現一些html程式碼,並逐步完整呈現。這樣可使使用者減少等待時間。不過你要注意一下,傳送的html程式碼必須是閉合完整的,否則有的瀏覽器不會立即呈現html,而是等待接受完整的html才呈現。否則使用它就沒有效果了。