ASP讲座三:应用程序对象和会话对象
1。了解应用程序对象。要刷新,让我们看一个计数器的示例(您应该运行它以便理解):
编辑wuf16.htm文件第一:
记录一个页面上点击次数的例子:
对wuf17.asp代码如下:
明确选择
昏暗的countweb
countweb = request.servervariables(script_name )
这确保每个页面都有唯一的变量,以避免混淆。
%>
写countweb 的反应。
vbcrlf
应用程序锁定请参见说明。
应用(countweb)=应用(CountWeb)+ 1的蓄能器,点击次数加1
application.unlock
响应。写总数,点击页面之前关闭的网站是:应用(countweb)
%>
当运行这个程序时,对大多数人来说,只有一个机器,Web和客户端,你可以想象这样一种情况:你的主页文件放在很远的网络,和潮波被访问的国内外用户,每个用户点击一次,应用价值(countweb)增加1。只要文件wuf17.asp不是封闭的,应用(CountWeb)将继续积累。但是请注意,如果应用程序重新启动后关闭,然后再countweb数量将从0开始计数。为了避免这个永远从零开始,你必须在应用程序关闭(countweb)值存储,你需要把它的下一次,你可以为了累积下来,怎么办,听N回后分解。
下一个问题是应用程序的含义是什么锁定和解锁我们刚刚做了一个假设,大量的用户访问页面,每个用户可以点击应用(CountWeb)1,想想,这不是什么乱七八糟的(!可没想到,它必须每天都是你的家,你是唯一一个谁赞助)所以他们有先来后到规则。当用户访问页面和修改应用的价值(countweb),锁的方法来锁定以避免其他用户修改,然后解锁后的改性。
你从上面的例子中看到的,应用程序对象提供给所有用户共享信息(应用程序(countweb)),它是面向所有用户(每个用户访问会导致计数器加1)。应用对象也有两个事件,application_onstart事件和application_onend事件。你千万不要头晕。这仅仅是面向对象编程语言中的概念。语法如下:
下面是一个如何使用事件的示例,其功能是计算站点所有页面上单击的总数。
该文件wuf18.asp代码(在网站的其他页面文件与此文件):
站点所有页面文件应包括% >
关闭重新启动前站点所有页面的点击总数:
wuf19.asp代码文件:
锁的应用。
应用(countall )=应用(countall )+ 1
application.unlock
%>
文件wuf18.asp和wuf19.asp放在同一目录下文件Global.asa代码:
注:事件处理程序命名Global.asa磁盘根目录下的文本文件,必须放置在虚拟路径(通常是index.htm或default.htm文件在同一目录下,例如:在我的机器为例,绝对路径,Global.asa C: inetpub 家,对C:wuf18.asp和wuf19.asp inetpub 家 ASP),相同的虚拟路径只允许一个Global.asa文件的存在。
浏览wuf18.asp看到运行结果。似乎不难学会使用应用程序对象只。
二是了解会话对象,以前端应用对象作为铺路对象,会话对象更容易,类似于应用对象,只用于记录单个用户的相关信息,面向单个用户,因此可以使用会话对象存储单个用户的信息。
像应用对象,Session对象也有两个事件:事件的session_onstart和session_onend事件。使用的语法类似于应用对象。
值得一提的是,在使用会话对象之前,必须确认的cookie函数已启用(默认设置可以)。
这里有一个例子文件Global.asa要求如上,所以Global.asa将覆盖在这种情况下Global.asa。
文件wuf20.asp:
响应。写入默认超时设置超时分钟。
会话超时= 1
响应。写入您进入该站的时间会话()
回复:请写请在1分钟内刷新此页。
如果Not IsEmpty(应用())然后
回复:写上次你去车站的时间应用程序()。
回复:写上你上次离开车站的时间:应用程序()。
response.write浏览时间(分钟):_
Datediff(n
最后如果
如果IsEmpty(会话())然后
响应在刷新前后清空会话()的值。
最后如果
%>
当用户浏览网页的第一时间,有一个session_onstart事件。程序记录用户进入网页的时间。同时,将没有session_onend事件。因此,应用程序(out)值是空的,程序不会显示浏览时间。
我们知道应用程序对象的生命周期是第一个在关闭之前浏览Web的用户。会话对象的生命周期是用户第一次浏览Web页面(会话开始)直到会话结束。会话何时结束具体地说,在这种情况下,会话超时= 1会话超时设置为1分钟,就是说,如果1分钟不可用,没有要求提供的网页,然后在会议结束会话超时的结果,session_onend事件发生,和程序执行的代码,我们将进入session_onend.here离开的时间到应用()和应用()分别因为Session对象将不再在会话结束后存在的,这是在结束代码验证。
从这个例程,我们可以看到:
1的寿命。应用程序对象和会话对象是不同的。
2。会话对象是针对单个用户的,其值存储在客户机上,而其他用户的浏览对单个用户的会话对象没有影响。单个用户只能读取和写入自己会话对象的值(例如:会话())。
三.注意双引号在响应中的表示。
4。特别提醒:本程序不实用,仅供试用(仅供一用户浏览情况),请您想想为什么会这样答案在本文的结尾。
注意:请注意应用程序对象的特性。
三。一个典型的例子:如何在网页上显示在线人的数量
在下面的例子中,在线人数存储应用(在线),和访客总数存储应用(countall )。
原理:当一个新用户浏览的网页,该session_onstart事件发生,网上的人加1的数量,以及访问用户数量加1。当用户离开的事件发生后,session_onend会话的时间,和在线人数减少1。
Global.asa代码如下:
的wuf21.asp代码如下:
在线人数:
访问总数:
请注意,这个程序是wuf17.asp相比,后者的点击数,而前者是计算访问次数。
答:因为应用对象是适合所有的用户,所以浏览其他用户也将变的应用价值(中)和应用(出)在多用户的情况下。