程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 在線統計代碼 application

在線統計代碼 application

編輯:關於ASP編程
首先要設置好global.asa 文件,如下

圖片點擊可在新窗口打開查看以下內容為程序代碼
  1. <script language="vbscript" runat="server">
  2. sub application_onstart
  3. application("activeusers") = 0  //初始值
  4. end sub
  5. sub session_onstart
  6. session.timeout = 20          //刪除不活動用戶的時間
  7. session("start") = now
  8. application.lock           //鎖定application變量
  9. application("activeusers") = application
  10. ("activeusers") + 1        //統計
  11. application.unlock          //解鎖
  12. end sub
  13. sub session_onend
  14. application.lock
  15. application("activeusers") = application
  16. ("activeusers") - 1     //刪除不活動用戶或退出用戶
  17. application.unlock
  18. end sub
  19. </script>


顯示在線用戶數量的頁面


圖片點擊可在新窗口打開查看以下內容為程序代碼
  1. <%@ language=vbscript %>
  2. <html>
  3. <head>
  4. <title>在線用戶</title>
  5. </head>
  6. <body>
  7. <b>當前共有<font color="#cc0000"><%= application("activeusers") %></font> 人在線</b>
  8. </body>
  9. </html>

最普通的方法是用SESSION,但缺點是無法即時反應在線情況(有超時時間)和占用服務器資源(如果有100人在線就有100個SESSION,想想看8);上次(好象間隔很久了耶)介紹了一種采用APPLICATION+COOKIES的方法,但實現方法有些煩瑣同時還要設一個隱藏的自刷新頁面。 
這種方法則避免了以上的弊病,經實踐,效果不錯(例子:WWW。ATERSOFT。COM/BBS),具體如下: 
假定INDEX。HTM為框架網頁,包含ID=LEFT,ID=TOP和ID=BOTTOM的三個框架 
1、做個統計頁面USERNUM。ASP 
<p>正在統計數據。。。</p> 
<% 
user=request.querystring("user") 
if user=0 then '如果離開則人數-1 
application.lock 
application("num")=application("num")-1 
application.unlock 
response.write "<script>self.close();</script>" 
elseif user=1 then '如果進入則+1 
application.lock 
application("num")=application("num")+1 
application.unlock 
end if 
%> 

2、在框架頁面中如(INDEX。HTM)嵌入USERNUM。ASP 
<body onbeforeunload="window.open('usernum.asp?user=0','num','menubar=no')"> 
...... 
<iframe src="usernum.asp?user=1" frameborder=0 width=0 height=0></iframe> 
3、在需要顯示人數的頁面(假定在LEFT顯示)中加入 
<div id=num><%=application("num")%></div> 
4、設定需要更新數據的頁面(如BOTTOM) 
function tj(){ 
top.left.num.innerHTML=<%=application("num")%>; 

<body onload="tj()"> 
完畢,這只是一個例子,具體應用可以靈活,另外,為什麼當離開時要WINDOW。OPEN USERNUM。ASP呢?因為如果同樣放在IFRME中,窗口關得太快,USERNUM。ASP頁面來不及裝載就關掉了無法減少人數
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved