由于Response 對象的BufferOutput 屬性預設為True,所以要輸出到客戶端的數據暫時都儲存在緩沖區內,等到所有的事件程序以及所有的頁面對象全部解譯完畢后,才將所有在緩沖區中的數據送到客戶端的瀏覽器。接下來我們做個實驗來觀察緩沖區如何運作:
<Html>
<%
Response.Write("清除之后的數據<Br>")
%>
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,e As Eventargs)
Response.Write("清除緩沖區之前的數據" & "<Br>")
Response.Clear()
End Sub
</Script>
</Html>
上述程序代碼范例首先在Page_Load 事件中送出「清除緩沖區之前的數據」這一行,此時的數據存在緩沖區中。接著使用Response 對象的Clear 方法將緩沖區的數據清除,故剛剛送出的字符串已經被清除。然后IIS 開始讀取HTML 組件的部分,最后將結果送至Client 端的瀏覽器。由執行結果只出現「清除之后的數據」得知,使用Clear 方法之前的數據并沒有出現在瀏覽器上,由此可知程序在一開始是存在緩沖區內。接下來我們將相同的程序中加入「Response.BufferOutput=False 」敘述:
<Html>
<%
Response.Write("清除之后的數據<Br>")
%>
<Script Language="VB" Runat="Server">
Sub Page_Load(Sender As Object,e As Eventargs)
Response.BufferOutput=False
Response.Write("清除緩沖區之前的數據" & "<Br>")
Response.Clear()
End Sub
</Script>
</Html>