Session_OnStart() ,Session_OnEnd()的用法

人在江湖漂那能不挨刀 2005-03-17 02:51:20
<Script Language="VBScript" RunAt="Server">
Sub Application_OnStart()
Application("Counter") = 0 '在线人统计
End sub

Sub Session_OnStart()
Application.Lock
Application("Counter") = Application("Counter") + 1
if Application("IP")="" then
Application("IP")=Request.ServerVariables("REMOTE_ADDR")
else
Application("IP")=Application("IP")&"--"&Request.ServerVariables("REMOTE_ADDR")
end if
Application.UnLock
Session("Login")=false
End Sub

Sub Session_OnEnd()
Application.Lock
Application("Counter") = Application("Counter") - 1
Application("IP")=Replace(Application("IP"),Request.ServerVariables("REMOTE_ADDR"), "")
Application("IP")=Replace(Application("IP"),"----", "--")
Application.UnLock
Session("Login")=False
End Sub

</Script>


上面的脚本放在:根目录名字叫:global.asa中
但每次打开页面时:执行了Session_OnStart(),等关闭页面时:Session_OnEnd()事件却不马上执行

...全文
198 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
大家给给答案,怎么统计
lovebanyi 2005-03-17
  • 打赏
  • 举报
回复
Session_OnEnd()事件
这个事件不正常啊.

hhjjhjhj(大头)(想变胡萝卜^^) ( ) 信誉:100 2005-03-17 15:13:00 得分: 0


这个问题问得很多了,当页面中执行Session.Abandon
或Session.Timeout时间到时会执行。客户端关闭页面,服务器是不知道的。

我有做过测试的.就是Onend都发生不了.用了Abandon和等它超时..
用APPlication 值加1


hhjjhjhj 2005-03-17
  • 打赏
  • 举报
回复
不用那么认真,面页关了与客户上厕所去了效果一样的(都是没看你的网页)
flying310 2005-03-17
  • 打赏
  • 举报
回复
iis内建的不稳定性造成的。
zmgnwpu 2005-03-17
  • 打赏
  • 举报
回复
每个页面添加unload事件后,执行Session.Abandon,其实,如果网站访问量大,访问频繁的话,这个是可以忽略的
ietey 2005-03-17
  • 打赏
  • 举报
回复
那如何处理比较好呢?
纪俊 2005-03-17
  • 打赏
  • 举报
回复
楼上说的正确
这有点像类的析构函数
hhjjhjhj 2005-03-17
  • 打赏
  • 举报
回复
这个问题问得很多了,当页面中执行Session.Abandon
或Session.Timeout时间到时会执行。客户端关闭页面,服务器是不知道的。
MonkeyDHua 2005-03-17
  • 打赏
  • 举报
回复
我也遇到过这样的问题,后来我只能在Application_OnStart()中重新检查一下在线人数,可这样也不好,运算的东西多了

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧