Response.end()用法

ASP开发中可能有时候会用大段的if… else 的判断,不过如果是动态Response.write的内容,你想更方便阅读代码,可以用Response.End()来终端ASP的执行,也就类似于Break的用法,举个例子:

if (userid="")or(password="") then
Response.Write("<script lanuage=javascript>alert(&#39;UserName o&#114; Password is Empty!&#39;);location.href=&#39;../default.asp&#39;;</script>")
Response.End() ‘这里进行了中断
end if
下面是不为空进行读取数据库的操作,省略了n行代码

这样当传入的用户名或密码为空时,自动write提示信息信息,然后Response.End()中断程序,从而达到if 。。。else的作用。
另外使用Response.End的时候,就是我们日常调试程序的时候,比如
相输出拼接的SQL语句,而不想执行下面的代码,那么可以这么做

sql="sel&#101;ct * from userinfo "
response.Write(sql)
response.End()
rs.open sql ,conn,1,1 &#39;这句是不会执行的

如果怕加入Response.End()的地方过多而正式发布时候不好注释掉的化,可以用个函数将其封装起来,如下面代码:

sub debug()
Response.End()
end sub

上面的代码修改如下:

sql="sel&#101;ct * from userinfo "
response.Write(sql)
debug()
rs.open sql ,conn,1,1 &#39;这句是不会执行的

这样当进行正式发布时,将函数Debug中的语句注释掉,就可以起到调试的作用,不过这个也有个问题就是,如果你使用太多的Debug(),可能在调试的时候程序会不能按照需要进行中断,可能有时候你不希望这些地方中断执行,那么我们来进一步重构Debug()函数,如下:

sub debug(isBreak)
&#39;isBreak是boolean值的参数,如果设置为true的时候则进行中断,否则,不进行中断处理
if isBreak then
Response.End()
end
end sub

使用时候代码如下:

sql="sel&#101;ct * from userinfo "
response.Write(sql)
debug(false)
rs.open sql ,conn,1,1 &#39;这句是会执行的
rs.close()
sql="sel&#101;ct * from product "
response.write(sql)
debug(true)
rs.open sql,conn,1,1 &#39;这句不会执行

好了,这样基本上可以满足我们控制中断的需求了,不过只是简单的进行了分析,其实还很不完善,调试需求可能还有很多,需要满足,还需要进一步重构。其实程序开发就是一个重构重构再重构的过程,要不怎么会出来那么多的设计模式,都是前人从实际开发重构过程总结出来的经验,值得大家借鉴。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏