飘灵儿 发表于 2015-1-16 23:18:15

ASP教程之浅谈session_onend的调试

优点:简单易学、开发速度快、有很多年“历史”,能找到非常多别人做好的程序来用、配合activeX功能强大,很多php做不到的asp+activeX能做到,例如银行安全控件sessionsession_onend是对照难调试的,这是由于:
1、没有堕落信息提醒(这也难怪,是没有中央提醒的,基本不晓得要将堕落提醒信息放到甚么中央往)。
2、年夜多半情形下,也不克不及利用session.abandon来手工开释sesion举行调试――你开释了一切的session,那你在session_onend中不要用到session工具吗?以是,只好傻的守候session超时了。还好,session超不时域能够本人设,调试时设小点,好比2分钟或1分钟的。
3、假如你只要一台电脑,那就更难调试了,缘故原由不必我说了吧。

上面我给人人说说我在调试session_onend时的一点点履历:

1、不要嫌疑你的session_onend没有实行(实在入手下手时我也已经嫌疑过,由于总信任本人的session_onedn事务没有错),常听有些人埋怨:“怎样我的session_onend没有实行,session_onstart是好好的”,固然了,session_onstart简单看到嘛。
假如你不信的话,你将一个标志放到session_onend的第一行。
subsession_onend
application("flag1")="session_onend已实行了"
…………前面是你的session_onend的内容
endsub

然后等session超时后,用apptest.asp?key=flag1(apptest.asp前面附有)检察application("flag1")的值,你一定能看到“session_onend已实行了”。
以是,一旦你的session_onend没有到达你的目标时,应当检查你的session_onend事务有无写好――跟asp文件一样,session_onend一旦碰到毛病,即刻中断实行……

2、写session_onend事务时必定要细心,要包管每一个字每都不会错,包管不呈现语法,不呈现逻辑毛病。这个只能你的眼睛和头脑能帮上你。
上面是我在调试谈天室的session_onend事务时的办法,供年夜学参考:

我鄙人面的程序中设了几个标志:flag1,flag2,flag3,flag4,flag5

<SCRIPTLANGUAGE="VBScript"RUNAT="Server">
subSession_onEnd
ip=session("userip")
application("flag1")=ip――标志flag1
chatdata=application("chatdata")
onliuser=application("onliuser")
kicklist=application("kicklist")
uleave=false
fori=0to50
ifchatdata(i,1)=ipthen
kicklist=replace(kicklist,",#"&chatdata(i,0)&"","")
onliuser=replace(onliuser,","&chatdata(i,0)&"","")
chatdata(i,0)=""
chatdata(i,1)=""
chatdata(i,2)=0
chatdata(i,3)=""
chatdata(i,4)=0
chatdata(i,5)=""
uleave=true
application("flag2")="找到同ip的聊客"――标志flag2
endif
next
kicklist=replace(kicklist,","&ip&"","")
application("flag3")="kicklist的值为:"&kicklist――标志flag3
ifuleavethen
fori=0to50
chatdata(i,4)=(chatdata(i,4)mod4)+4
next
application("flag4")="实行了关照更新名单"――标志flag4
endif
application("flag5")="第4标记"――标志flag5
application.lock
application("kicklist")=kicklist
application("onliuser")=onliuser
application("chatdata")=chatdata
application.unlock
application("flag6")="实行了application变量更新"――标志flag6
endsub
</script>


然后就是开窗口、登录谈天室,封闭扫瞄器(不要一般加入),等session超时。session超时后(最幸亏另外一台电脑上),用apptest.asp?key=flag6……apptest.asp?key=flag5……apptest.asp?key=flag4……检察各application的值,从而晓得我的程序究竟实行到了那里。
除非你看到最初一个标志flag6有值,不然证实你的程序存在语法毛病!!
如许能够找到程序在那部分堕落,然后再剖析有错的那一部分,反复上述步骤,直到你的session_onend到达你的请求。
好比你的flag3的值,但flag2没有值,那就申明在flag2与flag3之间的程序段有语法毛病……


附:调试程序apptest.asp
程序称号:apptest.asp
程序功效:检察application变量值
挪用办法:apptest.asp?key=变量名&keyd=维数,key为要检察的application变量名,keyd为该application变量寄存的数组维数。省略keyd时,暗示该application变量不是数组。

<center>Application变量检察程序</center>
<%
key=request("key")
keyd=request("keyd")

ifkeyd=""then
response.writeapplication(key)
response.end
endif

username=application(key)
selectcasekeyd
case"2"
fori=0to50
forj=0to5
response.writeusername(i,j)&chr(13)&chr(10)
next
next
case"1"
</p>实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。

只想知道 发表于 2015-1-20 09:20:51

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

老尸 发表于 2015-1-22 21:51:42

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

变相怪杰 发表于 2015-1-23 19:31:01

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

冷月葬花魂 发表于 2015-1-25 20:36:11

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

不帅 发表于 2015-1-29 15:40:22

在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。

透明 发表于 2015-2-6 02:30:07

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

乐观 发表于 2015-2-15 01:20:09

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

山那边是海 发表于 2015-3-4 10:52:54

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

仓酷云 发表于 2015-3-11 18:27:44

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

简单生活 发表于 2015-3-19 07:11:18

不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍

分手快乐 发表于 2015-3-27 12:09:49

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
页: [1]
查看完整版本: ASP教程之浅谈session_onend的调试