国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

淺談session_onend的調(diào)試

2019-11-18 22:12:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友



    session_onend是比較難調(diào)試的,這是因?yàn)椋?br>    一、沒(méi)有出錯(cuò)信息提示(這也難怪,是沒(méi)有地方提示的,根本不知道要將出錯(cuò)提示信息放到什么地方去)。    
    二、大多數(shù)情況下,也不能使用session.abandon來(lái)手工釋放sesion進(jìn)行調(diào)試——你釋放了所有的session,那你在session_onend中不要用到session對(duì)象嗎?所以,只好傻呼呼的等待session超時(shí)了。還好,session超時(shí)時(shí)域可以自己設(shè),調(diào)試時(shí)設(shè)小點(diǎn),比如2分鐘或1分鐘的。
    三、如果你只有一臺(tái)電腦,那就更難調(diào)試了,原因不用我說(shuō)了吧。
    
    下面我給大家說(shuō)說(shuō)我在調(diào)試session_onend時(shí)的一點(diǎn)點(diǎn)經(jīng)驗(yàn):

    一、不要懷疑你的session_onend沒(méi)有執(zhí)行(其實(shí)開(kāi)始時(shí)我也曾經(jīng)懷疑過(guò),因?yàn)榭傁嘈抛约旱膕ession_onedn事件沒(méi)有錯(cuò)),常聽(tīng)有些人抱怨:“怎么我的session_onend沒(méi)有執(zhí)行,session_onstart是好好的”,當(dāng)然了,session_onstart容易看到嘛。
    如果你不信的話(huà),你將一個(gè)標(biāo)記放到session_onend的第一行。
    sub session_onend
      application("flag1")="session_onend已經(jīng)執(zhí)行了"
      …………后面是你的session_onend的內(nèi)容
    end sub

    然后等session超時(shí)后,用aPPTest.asp?key=flag1(apptest.asp后面附有)查看application("flag1")的值,你肯定能看到“session_onend已經(jīng)執(zhí)行了”。
    所以,一旦你的session_onend沒(méi)有達(dá)到你的目的時(shí),應(yīng)該檢討你的session_onend事件有沒(méi)有寫(xiě)好——跟asp文件一樣,session_onend一旦遇到錯(cuò)誤,馬上停止執(zhí)行……

    二、寫(xiě)session_onend事件時(shí)一定要仔細(xì),要保證每個(gè)字每都不會(huì)錯(cuò),保證不出現(xiàn)語(yǔ)法,不出現(xiàn)邏輯錯(cuò)誤。這個(gè)只能你的眼睛和思維能幫上你。
    下面是我在調(diào)試聊天室的session_onend事件時(shí)的方法,供大學(xué)參考:

    我在下面的程序中設(shè)了幾個(gè)標(biāo)記:flag1,flag2,flag3,flag4,flag5

<SCRipT LANGUAGE="VBScript" RUNAT="Server">
sub Session_onEnd
ip=session("userip")
application("flag1")=ip      ——標(biāo)記flag1
chatdata=application("chatdata")
onliuser=application("onliuser")
kicklist=application("kicklist")
uleave=false
for i=0 to 50
  if chatdata(i,1)=ip then
    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的聊客"     ——標(biāo)記flag2
  end if
next
kicklist=replace(kicklist,",'"&ip&"'","")
application("flag3")="kicklist的值為:"&kicklist  ——標(biāo)記flag3
if uleave then
  for i=0 to 50
    chatdata(i,4)=(chatdata(i,4) mod 4)+4
  next
  application("flag4")="執(zhí)行了通知更新名單"   ——標(biāo)記flag4
end if
application("flag5")="第4標(biāo)志"                ——標(biāo)記flag5
application.lock
  application("kicklist")=kicklist
  application("onliuser")=onliuser
  application("chatdata")=chatdata
application.unlock
application("flag6")="執(zhí)行了application變量更新"   ——標(biāo)記flag6
end sub
</script>


    然后就是開(kāi)窗口、登錄聊天室,關(guān)閉瀏覽器(不要正常退出),等session超時(shí)。session超時(shí)后(最好在另一臺(tái)電腦上),用apptest.asp?key=flag6……apptest.asp?key=flag5……apptest.asp?key=flag4……查看各application的值,從而知道我的程序到底執(zhí)行到了哪里。
    除非你看到最后一個(gè)標(biāo)記flag6有值,否則證明你的程序存在語(yǔ)法錯(cuò)誤!!
    這樣可以找到程序在那部分出錯(cuò),然后再分析有錯(cuò)的那一部分,重復(fù)上述步驟,直到你的session_onend達(dá)到你的要求。
    比如你的flag3的值,但flag2沒(méi)有值,那就說(shuō)明在flag2與flag3之間的程序段有語(yǔ)法錯(cuò)誤……


附:調(diào)試程序apptest.asp
程序名稱(chēng):apptest.asp
程序功能:查看application變量值
調(diào)用方法:apptest.asp?key=變量名&keyd=維數(shù),key為要查看的application變量名,keyd為該application變量存放的數(shù)組維數(shù)。省略keyd時(shí),表示該application變量不是數(shù)組。

<center>Application變量查看程序</center>
<%
key=request("key")
keyd=request("keyd")

if keyd="" then
  response.write application(key)
  response.end
end if

username=application(key)
select case keyd
case "2"
for i=0 to 50
  for j=0 to 5
   response.write username(i,j)&chr(13)&chr(10)
  next
next
case "1"
  for i=0 to ubound(username,1)
   response.write i&replace(username(i),"<br>","")&"<br>"
  next
end select
%>



發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宝坻区| 安平县| 泰宁县| 嘉善县| 白玉县| 沧源| 闵行区| 平邑县| 湛江市| 禄丰县| 林州市| 台南县| 郯城县| 苗栗市| 大方县| 遂溪县| 勐海县| 获嘉县| 伊川县| 平凉市| 宿州市| 晋宁县| 个旧市| 宁晋县| 柳林县| 平山县| 利辛县| 静乐县| 华阴市| 十堰市| 汉川市| 天镇县| 定安县| 沛县| 盈江县| 晋城| 北票市| 衡东县| 县级市| 赫章县| 镇坪县|