网页人数统计代码

网页人数统计代码,第1张

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

我想知道我的网页总共有多少人访问

但是不知道怎么写代码

要用到后面计术么???

谁知道给提拱源代码给我。。

我会加分的哈~~

解析:

*global.asa文件:

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub Session_OnStart

End Sub

Sub Session_OnEnd

End Sub

sub Application_OnStard

End Sub

sub Application_OnEnd

End Sub</SCRIPT>

当有一个会话发生时(用户浏览网页,向Web服务器发出请求)那么,如果自服务器启动后第一个用户的话,就会同时发生Application_OnStard和Session_OnStart这两个事件,之后,再有别的用户发出请求的话,就只发生Session_OnStart这个事件,而session的生存期是多长,是可以设定的,Session.timeout=X(分钟)

好了,有了这个很好用的方法,我们就能准确地统计出在线人数了,而人数总计是用一个application变量来保存,当在第一个会话开始时,在Application_OnStard事件中放置一条清空计数器的语句application("online")=0,然后,在Session_OnStart事件中,放置一条增加在线人数的语句application("online")=application("online") 1,而在Session_OnEnd事件相应地放一条减少在线人数的语句,令计数值减一。

这样,这个文件就改为如下

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub Session_OnStart

application("online")=application("online") 1

End Sub

Sub Session_OnEnd

application("online")=application("online")-1

End Sub

sub Application_OnStard

application("online")=0

End Sub

sub Application_OnEnd

application("online")=0

End Sub</SCRIPT>

接下来编一个显示图形数字的程序,把在线人数显示在指定的页面上。这样就能得出在人数了

*online

<% @language="vbscript" %>

<%

tmp=application("online")

tmp=Cstr(tmp)

dim disp(20)

dim images(20)

dbbits=len(tmp)

for I= 1 to dbbits

disp(I)=left(right(tmp,I),I-(I-1))

next

for I=dbbits to 1 step -1

images(I)="<img src=&xxxx/pic"&"/"&disp(I)&".gif>"

response.write "document.write('"&images(I)&"')"

next

%>

上面的程序很简单,这里不作分析了,请自己阅读一下。在调用在线统计的页面上用一句script语句引用online文件,以显示图形统计器。

<script language="JavaScript" src=xxxx/online></script>

这个页面需要服务器的ASP语言支持,请详细参考自己的服务器情况.

在Global.asax全局应用程序类中,设置当应用程序启动时初始化计数器,代码如下。

void Application_Start(object sender, EventArgs e)

{

// 在应用程序启动时运行的代码

//初始化

Application["counter"] = 0

}

在新会话启动时,实现计数器加1,代码如下。

void Session_Start(object sender, EventArgs e)

{

// 在新会话启动时运行的代码

//对Application加锁以防并行性

Application.Lock()

//增加一个在线人数

Application["counter"] = (int)Application["counter"] + 1

//解锁

Application.UnLock()

}

在会话结束时,实现计数器减1,代码如下。

void Session_End(object sender, EventArgs e)

{

// 在会话结束时运行的代码。

// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为

// InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer

// 或 SQLServer,则不会引发该事件。

//对Application加锁以防并行性

Application.Lock()

//减少一个在线人数

Application["counter"] = (int)Application["counter"] - 1

//解锁

Application.UnLock()

}

在主页Default.aspx第一次加载时,将Application[“counter”]赋给Label.text,实现在界面上显示在线人数,其代码如下。

Label2.Text=Application["counter"].ToString ()

在网站的根目录下,新建global.asa

<SCRIPT LANGUAGE="VBScript" RUNAT="Server">

Sub session_onstart

Application.lock

Application("online") = Application("online") + 1

Application.unlock

End sub

Sub session_onend

Application.lock

Application("online") = Application("online") - 1

End sub

</SCRIPT>

在其他页面中显示就可以了,如下

<html>

<body>

<% session.timeout = 5%>

<P>在线人数:<% = Application("onlive") %></P>

</body>

</html>

<% counter = Application("counter") + 1 %>

<html><body>是第<%counter%>位访客

<%Application("counter") = counter %>

</body></html>


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11725831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存