请问asp缓冲区的小问题?

来源:百度知道 编辑:UC知道 时间:2024/05/24 07:42:05
<%
response.buffer=true
if request.form("pass")<>"123" then
response.write "密码错误"
response.end
end if
response.write "密码正确"
%>
上面这段代码为什么不要清空缓冲区,就可以显示密码正确
而下面这段代码为什么要清空缓冲区,不清空的话就会同时显示出密码错误和密码正确?

<%
response.buffer=true
response.write "密码错误"
if request.form("pass")<>"123" then
response.end
end if
response.clear
response.write "密码正确"
%>

先说下边的:首先执行response.buffer=true
response.write "密码错误" ,这时缓冲区里有"密码错误"....如果你的密码是错误的话,if request.form("pass")<>"123" then
response.end
end if 这一句就可以执行了,程序结束就可以正常显示密码错误了,这时并没有什么不对,而你的密码如果是正确的话会跳过这一句,来到如果你没有response.clear这一句,就会执行
response.write "密码正确" ,这时你的缓冲区里就是"密码错误""密码正确"
,显示在页面上当然就是两了.如果你有response.clear 这一句,开始时的密码错误就被清空了.所以最后就显示一句:"密码正确"

而上面的那段程序,如果密码不是"123"的话,就直接退出并且输出"密码错误"了,而并不执行下面的程序段,如果密码是123的话,就不会进入if request.form("pass")<>"123" then
response.write "密码错误"
response.end
这一段,而是执行response.write "密码正确"

所以不用清空缓冲区就只显示密码正确啊