亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

網站需要顯示在線訪問人數

標簽:
JavaScript

Insus.NET开发这样多网站,客户一直没有这个要求。不过,现在有客户有这样的要求了。

在线用户访问人数,也就是说,要为网站写一个计数器,计数器的初始值为0,网站一开始运行时(Application_Start),就开始统计,当有用户访问时(Session_Start)计数器加1,当用户访问离开时(Session_End)计数器减1。

在网站中,有一个文件叫做Global.asax:



在程序开始时,定义一个计数器,初始值为0

 Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)        ' Code that runs on application startup                Application("OnlineVisitors") = 0    End Sub

View Code


当有用户访问网站时:

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)        ' Code that runs when a new session is started                Application.Lock()        Application("OnlineVisitors") = DirectCast(Application("OnlineVisitors"), Integer) + 1        Application.UnLock()    End Sub

View Code


当用户离开网站时:

Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)        ' Code that runs when a session ends.         ' Note: The Session_End event is raised only when the sessionstate mode        ' is set to InProc in the Web.config file. If session mode is set to StateServer         ' or SQLServer, the event is not raised.                Application.Lock()        Application("OnlineVisitors") = DirectCast(Application("OnlineVisitors"), Integer) - 1        Application.UnLock()    End Sub

View Code


上面两个Session_Start和Session_End方法中,Insus.NET有使用Application.Lock和Application.Unlock方法,是为了防止多个线程同时改变这个变量,在变更计数器时,先把它Lock起来,更变完毕,再Unlock。


把Global.asax文件保存,在网页中需要显示网站在线访问人数的位置:

 <%= Application("OnlineVisitors").ToString()%>

 
测试测试,测试过程中,Insus.NET有使用了两个浏览器,这样是为了让网站获取不同的进程访问者。而每个浏览器打开不同的窗口,所获得到的数据变量。

 

 后记:
此种方法,只是做表面功夫,统计不了真正的在线访问人数。如果需要真正实现在线人数统计,还得需要获取访问者的其它参数来一起判断。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消