当前位置:51VIP源码软件音乐小游戏下载联盟网络学院热门教程 → ASP讲座之三:Application对象与Session对象

ASP讲座之三:Application对象与Session对象

减小字体 增大字体 作者:wufei  来源:本站整理  发布时间:2005-9-25 13:31:40 我要发布文章
" & "<Br><Br>"

if Not IsEmpty(Application("Out")) then
Response.Write "您上次进入本站的时间:" & Application("In") & "<Br>"
Response.Write "您上次离开本站的时间:" & Application("Out") & "<Br>"
Response.Write "浏览时间(分钟):" &_
Datediff("n",Application("In"),Application("Out")) & "<Br><Br>"
End If

if IsEmpty(Session("Out")) then
Response.Write "刷新前和刷新后Session(""Out"")的值都为空" & "<Br>"
End If
%>
</BODY>
</HTML>
当用户第一次浏览网页时,发生Session_OnStart事件,程序记录用户本次进入网页的时间,而此时不会发生Session_OnEnd事件,故Application("Out")值为空,程序不会显示浏览时间。
我们知道,Application对象的生存期为第一个用户浏览网页直至服务器关闭。而Session对象的生存期为用户第一次浏览网页(会话开始)直至会话结束。那什么时候会话结束呢?具体到本例中,Session.Timeout = 1设置会话超时为1分钟,即如果长达1分钟没有向Web服务器提供请求,则会话超时,导致会话结束,发生Session_OnEnd事件,程序执行Session_OnEnd内的代码。在这里我们将进入和离开时间分别放入Application("In")和Application("Out"),因为会话结束后,Session对象将不复存在,这点我们在代码的最后做了验证。
从这个例程,可以看出:
1. Application对象和Session对象的生存期不同。
2. Session对象是针对单个用户的,它的值存放在客户端,其他用户的浏览对该单用户的Session对象没有任何影响。单个用户只能读写自己Session对象的值(如:Session("In"))。
3. 注意在Response.Write中显示双引号的表示方法:(""Out"")。
4. 特别提醒:该程序没有实用性,仅供调试用(仅适用于只有一个用户浏览的情况),请思考这是为什么?答案见本文末。
提示:请注意Application对象的特性。

三、一个经典的实例:如何在网页上显示在线人数
在下面的例子中,用Application("Online")来存放在线人数,用Application("CountAll")存放总访问人数。
原理:当一个新用户浏览网页时,发生Session_OnStart事件,在线人数加1,访问用户数也加1。当某用户离开时,会话超时后会发生Session_OnEnd事件,在线人数减1。
Global.asa代码如下:
<script LANGUAGE=VBscript RUNAT=Server>
' Global.asa - wuf21.asp
Sub Application_OnStart
Application.Lock
'在这里读出Application("CountAll")的初始值
Application.UnLock
End Sub

Sub Session_OnStart
Application.Lock
Applicatio

上一页  [1] [2]