Response對象用于向客戶(hù)端瀏覽器發(fā)送數據,用戶(hù)可以使用該對象將服務(wù)器的數據以HTML的格式發(fā)送到用戶(hù)端的瀏覽器,它與Request組成了一對接收、發(fā)送數據的對象,這也是實(shí)現動(dòng)態(tài)的基礎。下面介紹它常用的屬性和方法。
1、Buffer屬性
該屬性用于指定頁(yè)面輸出時(shí)是否要用到緩沖區,默認值為False。當它為T(mén)rue時(shí),直到整個(gè)Active Server Page執行結束后才會(huì )將結果輸出到瀏覽器上。如:
<%Response.Buffer=True%>
<html>
<Head>
<title>Buffer示例</title>
</head>
<body>
<%
for i=1 to 500
response.write(i & "<br>")
next
%>
</body>
</html>
這頁(yè)執行時(shí),整個(gè)主頁(yè)的所有內容會(huì )同時(shí)顯示在瀏覽器上,這個(gè)主頁(yè)會(huì )存在緩存區中直到腳本執行結束。
2、Expires屬性
該屬性用于設置瀏覽器緩存頁(yè)面的時(shí)間長(cháng)度(單位為分),必須在服務(wù)器端刷新。通過(guò)如下設置:<%Response.Expires=0%>
通過(guò)在A(yíng)SP文件中加入這一行代碼,要求每次請求是刷新頁(yè)面,因為Response一收到頁(yè)面就會(huì )過(guò)期。
3、Write方法
該方法把數據發(fā)送到客戶(hù)端瀏覽器,如:<%Response.write "Hello,world!"%>
4、Redirect方法
該方法使瀏覽器可以重新定位到另一個(gè)URL上,這樣,當客戶(hù)發(fā)出Web請求時(shí),客戶(hù)端的瀏覽器類(lèi)型已經(jīng)確定,客戶(hù)被重新定位到相應的頁(yè)面。如:
<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="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>
這個(gè)例子當用戶(hù)選擇了以后,按"Jump"按鈕提交表單,服務(wù)器接到申請后調用formjump.asp判斷后定位到相應的URL。不過(guò)這里有一點(diǎn)要注意,HTTP標題已經(jīng)寫(xiě)入到客戶(hù)瀏覽器,任何HTTP標題的修改必須在寫(xiě)入頁(yè)內容之前,遇到這種問(wèn)題時(shí),可以如下做:
在文件的開(kāi)始<@ Language=..>后寫(xiě):Response.Buffer=True
在結尾定:Response.Flush
這里Flush是Response的一個(gè)方法,它必須是Buffer屬性設置為T(mén)rue時(shí)才能使用,否則會(huì )產(chǎn)生一個(gè)運行模式錯誤。另外一個(gè)Clear方法也是用于清除被緩存的頁(yè)面,同樣要Buffer屬性設置為T(mén)rue時(shí)才能使用。
5、End方法
該方法用于告知Active Server當遇到該方法時(shí)停止處理ASP文件。如果Response對象的Buffer屬性設置為T(mén)rue,這時(shí)End方法即把緩存中的內容發(fā)送到客戶(hù)并清除沖區。所以要取消所有向客戶(hù)的輸出民,可以先清除緩沖區,然后利用End方法。如:
<%
Response.buffer=true
On error resume next
Err.clear
if Err.number<>0 then
Response.Clear
Response.End
end if
%>
聯(lián)系客服