響應對象 錯誤 'ASP 0156 : 80004005'
標題錯
go.ASP, 行10
HTTP標題已經寫入到客戶浏覽器。任何HTTP標題的修改必須在寫入頁內容之前。
上面的錯誤信息是否曾困擾過你?(蜘蛛精:是否曾讓你抓耳撓腮,徹夜難眠,最後
不得不以頭撞牆而終?鄙人便飽受其害,至今仍為其消得人憔悴。)
<%response.buffer=true%>
上句須加在所有通過redirect調用Html文檔的代碼之前.這一句可以讓浏覽收到HTTP
標題已被寫入的信息。通常一個頁面含有標題--or-- 。
如果浏覽器在寫文本,你不能再用response.redirect來寫文本,魚和熊掌不可兼
得。
<%response.buffer=true%>
它告訴浏覽器不到寫任何內容,直到:
a) response.end 中止頁面操作
b) response.flush 開始執行
c) 100% of the page is executed 頁面操作完全執行完
d) response.redirect命令已發出,response.flush不再傳送任何內容或文本。
<%response.buffer=true%> 的唯一反饋是如果頁面正在進行長時間地處理(如處理
有上千數據的數據庫時),只有等到所有該處理的內容完成後,才可以出現期待的頁
面。通常人們會認為浏覽死住了,為此
response.flush
可以讓人們逐步地看到處理過的頁面。因此,我們說BUFFER=true和flushing是產生
速度的理想方法。
/advice/whybuffer.ASP
<%response.buffer=false%>
<Html><head>
<title>dailystuff.ASP</title>
</head>
<body>
<%
whatweekday=Weekday(now())
select case whatweekday
case vbSunday
response.redirect "http://www.cnn.com"
case vbMonday
response.redirect "http://www.activeserverpages.com"
case vbTuesday
response.redirect "http://www.ASPalliance.com"
case vbWednesday
response.redirect "http://www.ASPconvention.com"
case vbThursday
response.redirect "http://www.ASPmagazine.com"
case vbFriday
response.redirect "http://www.dilbert.com"
case vbSaturday
response.redirect "http://www.movIElink.com"
end select
%>
</body>
</Html>
下面是修改後的代碼,執行時不會出現出錯信息。
<%response.buffer=true%>
<Html><head>
<title>dailystuff.ASP</title>
</head>
<body>
<%
whatweekday=Weekday(now())
select case whatweekday
case vbSunday
response.redirect "http://www.cnn.com"
case vbMonday
response.redirect "http://www.activeserverpages.com"
case vbTuesday
response.redirect "http://www.ASPalliance.com"
case vbWednesday
response.redirect "http://www.ASPconvention.com"
case vbThursday
response.redirect "http://www.ASPmagazine.com"
case vbFriday
response.redirect "http://www.dilbert.com"
case vbSaturday
response.redirect "http://www.movIElink.com"
end select
%>
</body>
</Html>