response|對象|內建對象|詳解
Response對象用於向用戶端瀏覽器發送資料,使用者可以使用該對象將伺服器的資料以HTML的格式發送到使用者端的瀏覽器,它與Request組成了一對接收、發送資料的對象,這也是實現動態基礎。下面介紹它常用的屬性和方法。
1、Buffer屬性
該屬性用於指定頁面輸出時是否要用到緩衝區,預設值為False。當它為True時,直到整個Active Server Page執行結束後才會將結果輸出到瀏覽器上。如:
<%Response.Buffer=True%>
<html>
<Head>
<title>Buffer樣本</title>
</head>
<body>
<%
for i=1 to 500
response.write(i & "<br>")
next
%>
</body>
</html>
這頁執行時,整個首頁的所有內容會同時顯示在瀏覽器上,這個首頁會存在緩衝區中直到指令碼執行結束。
2、Expires屬性
該屬性用於設定瀏覽器快取頁面面的時間長度(單位為分),必須在伺服器端重新整理。通過如下設定:
<%Response.Expires=0%>
通過在ASP檔案中加入這一行代碼,要求每次請求是重新整理頁面,因為Response一收到頁面就會到期。
3、Write方法
該方法把資料發送到用戶端瀏覽器,如:
<%Response.write "Hello,world!"%>
4、Redirect方法
該方法使瀏覽器可以重新置放到另一個URL上,這樣,當客戶發出Web請求時,用戶端的瀏覽器類型已經確定,客戶被重新置放到相應的頁面。如:
<html>
<head>
<title>Redirect樣本</title>
</head>
<body>
<form aciton="formjump.asp" method="post">
<select name="wheretogo">
<option selected value="fun">Fun</option>
<option value="news">News</option>
<option value="sample">Sample</option>
</select>
<input type=submit name="jump" value="Jump">
</form>
</body>
</html>
以上是提交的表單,下面是處理表單的檔案formjump.asp:
<%response.buff=true%>
<html>
<head>
<title>Redirect樣本</title>
</head>
<body>
<%
thisurl="http://www.webjx.com/"
where=Request.form("wheretogo")
Select Case where
case "fun"
response.redirect thisurl & "/fun/default.asp"
case "news"
response.redirect thisurl & "/news/default.asp"
case "sample"
response.redirect thisurl & "/sample/default.asp"
End Select
%>
</body>
<html>
這個例子當使用者選擇了以後,按"Jump"按鈕提交表單,伺服器接到申請後調用formjump.asp判斷後定位到相應的URL。不過這裡有一點要注意,HTTP標題已經寫入到客戶瀏覽器,任何HTTP標題的修改必須在寫入頁內容之前,遇到這種問題時,可以如下做:
在檔案的開始<@ Language=..>後寫:
Response.Buffer=True
在結尾定:
Response.Flush
這裡Flush是Response的一個方法,它必須是Buffer屬性設定為True時才能使用,否則會產生一個運行模式錯誤。另外一個Clear方法也是用於清除被緩衝的頁面,同樣要Buffer屬性設定為True時才能使用。
5、End方法
該方法用於告知Active Server當遇到該方法時停止處理ASP檔案。如果Response對象的Buffer屬性設定為True,這時End方法即把緩衝中的內容發送到客戶並清除沖區。所以要取消所有向客戶的輸出民,可以先清除緩衝區,然後利用End方法。如:
<%
Response.buffer=true
On error resume next
Err.clear
if Err.number<>0 then
Response.Clear
Response.End
end if
%>