注册 登录
编程论坛 ASP技术论坛

代码分析

TZTJ 发布于 2009-08-28 00:23, 935 次点击
请教各位高手,以下代码为什么不能正确显示呢?
<%
Response.Buffer=true
On error resume next
If Request.ServerVariables("Request_Method")="GET" then
%>
主要问题出在:Response.Buffer=true
24 回复
#2
yms1232009-08-28 13:38
<%
Response.Buffer=true
'把这个设置为true的话buffer是缓冲的意思,设置为true的话服务器会一点一点的把处理结果发送到浏览器,而不是一次把所有处理结果发送到浏览器。
On error resume next
If Request.ServerVariables("Request_Method")="GET" then
%>
#3
TZTJ2009-08-28 23:31
为什么这样设置,在网页上不能正确显示呢?
#4
yms1232009-08-29 12:01
你的网页代码怎么写的?
#5
TZTJ2009-08-29 22:27
首先感谢版主的关照!具体代码是这样:
<%@ Language=VBScript %>
<%
Response.Buffer=true \' 设置输出缓存,用于显示不同页面。
On error resume next \' 忽略程序出错部分
If Request.ServerVariables("Request_Method")="GET" then
\' 判断客户是以什么方式请求 WEB 页面
\'------------------------
\' 客户登陆界面
\'------------------------
%>
<form method="POST"action="chat.asp"><p>
<input type="text" name="nick" size="20" value="nick" style="background-color: rgb(192,192,192)"><br>
<input type="submit" value=" 进入聊天室 " name="B1" style="color: rgb(255,255,0); font-size: 9pt; background-color: rgb(0,128,128)">
</p>
<p><input type="hidden" name="log" size="20" value="1"><br></p>
</form>
<%
Response.End \' 结束程序的处理
Else
Response.clear \' 清空缓存中的内容
dim talk
If Request.Form("nick")<>"" then
\' 判断客户是是否在聊天界面中
Session("nick")=Request.Form("nick")
End If
\'------------------------\'
客户聊天界面
\'------------------------
%>
<form method="POST" action="chat.asp" name=form1><p>
<%=Session("nick")%>说话:<input type="text" name="talk" size="50">
<br>
<input type="submit" value=" 提交 " name="B1">
<input type="reset" value=" 取消 " name="B2"></p>
</form>
<A HREF="/asptest/shusheng/chat.asp">离开 </a><br><br>
<%
If Request.Form("log")<>1 then
If trim(Request.Form("talk"))="" then
\' 判断用户是否没有输入任何内容
talk=Session("nick")&" 沉默是金。"
Else
talk=trim(Request.Form("talk"))
\' 去掉字符后的空格
End If
Application.lock
Application("show")="< table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' width=\'85%\' >< tr>< td width=\'100%\' bgcolor=\'#C0C0C0\'>< /td>< /tr>< tr>< td width=\'100%\'>< font color=\'#0000FF\'>来自 "&Request.ServerVariables("remote_addr")&" 的 "&Session("nick")&time&" 说:< /font>"&talk&"< /td>< /tr>< tr>< td width=\'100%\' bgcolor=\'#C0C0C0\'>< /td>< /tr>< /table>< br>"&Application("show")
Application.UnLock
Response.Write Application("show")
End If
End If
%>
请各位高手帮忙一下,看这段代码出错在哪里?
#6
yms1232009-08-30 09:41
On error resume next \' 忽略程序出错部分
把这句话临时删除掉看看出什么错误。
#7
TZTJ2009-08-30 21:50
仍然在:Response.Buffer=true 出现错误
#8
TZTJ2009-08-31 21:36
版主能否把所有代码复制进行测试一下,帮我如何解决问题呢?
#9
xing5996662009-09-01 02:51
<%
Response.Buffer=0 \' 设置输出缓存,用于显示不同页面。
On error resume next \' 忽略程序出错部分
If Request.ServerVariables("Request_Method")="GET" then
\' 判断客户是以什么方式请求 WEB 页面
#10
xing5996662009-09-01 02:52
不行的话  换成
Response.Expires=0
#11
jingjing3162009-09-01 15:02
Buffer 属性可规定是否对输出进行缓冲。通常情况下,ASP 脚本在服务器端执行,每句的执行结果都会发送到客户端的浏览器上显示出来。当输出设置缓存时,服务器会阻止向浏览器的响应,直到所有的服务器脚本均被处理,或者直到脚本调用了 Flush 或 End 方法。

注释:如果要设置此属性,它应当位于 .asp 文件中的 <html> 标签之前。

语法:
response.Buffer[=flag]
flag  布尔值,规定是否缓冲页面输出。

False 指示不缓存,服务器会一边处理一边发送输出。IIS version 4.0 默认为 False,而 IIS version 5.0 及更高的版本默认为 true。

True 指示缓冲。服务器不会发送输出,直到页面上的所有脚本被处理,或者直到 Flush 或 End 方法被调用。
 
#12
aspic2009-09-01 15:07
\’这个是什么语言的注释方式啊?
#13
TZTJ2009-09-03 21:48
首先感谢各位指点!但问题都没有得到解决.在网页显示说是response.buffer=true有语法错误!

#14
aspic2009-09-04 08:40
\’这个是什么语言的注释方式啊?
#15
aspic2009-09-04 08:40
\’这个是什么语言的注释方式啊?
#16
TZTJ2009-09-04 23:05
vbscript
#17
TZTJ2009-09-04 23:07
这是使用vbsript语言
#18
jingjing3162009-09-05 07:46
回复 13楼 TZTJ
把那句话去掉看看,程序能正常执行,就不用要了啊!不是说IIS5.0以上默认为TRUE了吗,舍不设置都一样啊!
#19
aspic2009-09-05 08:56
vbsript有这样的注释吗 vbscript是'不是\'吧
#20
TZTJ2009-09-05 10:25
谢谢各位高手的关注!但去掉注释也是解决不了问题.你们能不能全部复制下去试运行以下呢?好像你们所说的我都做了还是不行.,
#21
aspic2009-09-05 11:28
程序代码:
<%
Response.Buffer=true
On error resume next
If Request.ServerVariables("Request_Method")="GET" then
%>
<form method="POST"action="chat.asp"><p>
<input type="text" name="nick" size="20" value="nick" style="background-color: rgb(192,192,192)"><br>
<input type="submit" value=" 进入聊天室 " name="B1" style="color: rgb(255,255,0); font-size: 9pt; background-color: rgb(0,128,128)">
</p>
<p><input type="hidden" name="log" size="20" value="1"><br></p>
</form>
<%
Response.End
Else
Response.clear
dim talk
If Request.Form("nick")<>"" then
Session("nick")=Request.Form("nick")
End If
%>
<form method="POST" action="chat.asp" name=form1><p>
<%=Session("nick")%>说话:<input type="text" name="talk" size="50">
<br>
<input type="submit" value=" 提交 " name="B1">
<input type="reset" value=" 取消 " name="B2"></p>
</form>
<A HREF="/asptest/shusheng/chat.asp">离开 </a><br><br>
<%
If Request.Form("log")<>1 then
If trim(Request.Form("talk"))="" then
talk=Session("nick")&" 沉默是金。"
Else
talk=trim(Request.Form("talk"))
End If
Application.lock
Application("show")="< table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' width=\'85%\' >< tr>< td width=\'100%\' bgcolor=\'#C0C0C0\'>< /td>< /tr>< tr>< td width=\'100%\'>< font color=\'#0000FF\'>来自 "&Request.ServerVariables("remote_addr")&" 的 "&Session("nick")&time&" 说:< /font>"&talk&"< /td>< /tr>< tr>< td width=\'100%\' bgcolor=\'#C0C0C0\'>< /td>< /tr>< /table>< br>"&Application("show")
Application.UnLock
Response.Write Application("show")
End If
End If
%>
非常不好意思 这样确实可以 而且你那个所谓的vbscript的注释方式确实没有见过 如果那样能正常运行那确实太厉害了
#22
TZTJ2009-09-05 23:42
首先感谢aspic.确实不好意思,由于本人刚开始学习asp,这段代码不是本人写的,是从网上下载下来.因此,不得不请教各位高手,本人也摸索了很久,问题总是得不到解决.你这样修改后可以运行,只是去掉第一行,你是怎样测试呢?
还有,table border=\'0\' cellpadding=\'0\' cellspacing=\'0\' 为什么不能改为table border=0 cellpadding=0 cellspacing=0.好像在html是这样的
#23
asdlyz2009-09-06 14:05
回复 22楼 TZTJ
<%@language=VBScript%>是可加可不加的.
在IIS中可以定义ASP使用的默认脚本语言,一般都设置为默认VBS,所以这句就可以不写。
但是如果你用javascript来写ASP的话,就要声明一下了。
#24
TZTJ2009-09-06 15:02
感谢你真诚的帮助!由于网页代码的语言多种多样,真是让人学起来有点模糊.
#25
lengchuan2009-09-06 15:18
Response.Buffer 即缓冲一ActiveServerPage。回应只到某一页结束或Response.Flush或Response.End方法调用时才发送出去。服务器将输出送给客户端后就不能再设置Buffer属性了。
1