成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當(dāng)前位置:首頁(yè)>>開發(fā)編程>>VS.NET>>新聞內(nèi)容
用ASP.NET實(shí)現(xiàn)在線用戶統(tǒng)計(jì)
作者:佚名 發(fā)布時(shí)間:2004-5-29 9:01:16 文章來源:西部E網(wǎng)

  統(tǒng)計(jì)在線用戶的作用不言而喻,就是為了網(wǎng)站管理者可以知道當(dāng)前用戶的多少,然后根據(jù)用戶數(shù)量來觀察服務(wù)器或者程序的性能,從而可以直觀的了解到網(wǎng)站的吸引力或者網(wǎng)站程序的效率。現(xiàn)在,我們就介紹一個(gè)簡(jiǎn)單明了的方法來統(tǒng)計(jì)在線用戶的多少,該方法的特點(diǎn)就是充分的利用了ASP.NET的特點(diǎn),結(jié)合global.asax文件,用Application和Session巧妙的實(shí)現(xiàn)在線用戶的統(tǒng)計(jì),由于程序中只用到一個(gè)Application,所以,程序占用系統(tǒng)資源幾乎可以忽略不及,當(dāng)然,這也是網(wǎng)站管理者最關(guān)心的問題之一。

  一、用戶顯示頁(yè)面的使用

  首先,我們來看看怎樣現(xiàn)實(shí)當(dāng)前網(wǎng)站的訪問用戶數(shù)量,程序代碼如下:  

   <%@ Page Language="c#" debug="true" %>
  <html>
  <head>
  <SCRIPT LANGUAGE="c#" RUNAT="server">
  private void Page_Load(object sender, System.EventArgs e)
  {
  Visitors.Text = "本站當(dāng)前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位訪問者 !";
  }
  <title>在線用戶</title>
  </head>
  <body>
  <asp:label id="visitors" runat="server" /><br>
  </body>
  </html>   

  可以看出,以上的程序特別簡(jiǎn)單,就是調(diào)用Application。當(dāng)然,我們不必要專門設(shè)計(jì)一個(gè)頁(yè)面來顯示在線用戶數(shù)量,在網(wǎng)站的任何頁(yè)面,我們都可以直接調(diào)用Application("user_sessions").ToString()來顯示當(dāng)前用戶數(shù)量。

  二、global.asax文件實(shí)現(xiàn)
  global.asax文件的作用我們自不必說,現(xiàn)在,我們直接來看統(tǒng)計(jì)當(dāng)前在線用戶數(shù)量如何實(shí)現(xiàn): 

   <script language="c#" runat="Server">
  protected void Application_Start(Object sender, EventArgs e)
  {
  Application["user_sessions"] = 0;
  }
  protected void Session_Start(Object sender, EventArgs e)
  {
  Application.Lock();
  Application["user_sessions"] = (int)Application["user_sessions"] + 1;
  Application.Unlock();
  }
  protected void Session_End(Object sender, EventArgs e)
  {
  Application.Lock();
  Application["user_sessions"] = (int)Application["user_sessions"] - 1;
  Application.Unlock();
  }
  </script>   

  以上代碼很容易理解,當(dāng)網(wǎng)站開始服務(wù)的時(shí)候(Application開始的時(shí)候),程序設(shè)置Application["user_sessions"]為零,然后,當(dāng)用戶進(jìn)入網(wǎng)站(Session開始的時(shí)候)的時(shí)候,鎖定Application,然后,將application("user_sessions")加一,用戶退出網(wǎng)站的時(shí)候,application("user_sessions")減一。這樣,就很巧妙的實(shí)現(xiàn)了在線用戶的統(tǒng)計(jì)。

  三、一點(diǎn)討論

  以上的統(tǒng)計(jì),簡(jiǎn)明扼要,程序很容易實(shí)現(xiàn)。但是,如果我們仔細(xì)考慮,發(fā)現(xiàn)該方法有一定的局限,統(tǒng)計(jì)出來的在線用戶數(shù)量可能稍微有點(diǎn)誤差。因?yàn)槲覀冊(cè)谝陨铣绦蛑校歉鶕?jù)用戶建立和退出會(huì)話(Session)來實(shí)現(xiàn)在線人數(shù)的加減的,而我們知道,如果用戶沒有關(guān)閉瀏覽器,而進(jìn)入另外一個(gè)網(wǎng)站,那么,這個(gè)會(huì)話在一定的時(shí)間內(nèi)是不會(huì)結(jié)束的,這個(gè)時(shí)間我們可以通過TimeOut來設(shè)置,一般的,我們?cè)O(shè)置為20分鐘。所以,在用戶數(shù)量統(tǒng)計(jì)上面,還是存在一點(diǎn)誤差的。

  另外,我們知道,在ASP中,如果用戶將瀏覽器上面的Cookies設(shè)置為“禁用”,那么,Session就不能再被傳遞,顯然,這樣設(shè)置讓以上的統(tǒng)計(jì)程序無能為力。不過,在ASP.NET中我們有解決方法,在config.web文件中,我們將<sessionstate cookieless="false" />設(shè)置為true就可以了,也就說,不使用Cookies也可以傳遞Session。這樣,我們的程序就可以在不同的訪問者環(huán)境中順利運(yùn)行。

  四、總結(jié)

  以上的統(tǒng)計(jì)程序特別簡(jiǎn)單,但是,細(xì)節(jié)的東西我們不一定想到,這也是我們?cè)诰幊讨行枰嘁稽c(diǎn)考慮的。

 


最新更新
·C#中使用Split分隔字符串的技
·VS2008開發(fā)中Windows Mobile
·PC機(jī)和移動(dòng)設(shè)備上絕對(duì)路徑的
·C#程序加殼的方法(使用Sixx
·當(dāng)前上下文中不存在名稱Conf
·請(qǐng)插入磁盤:Visual Studio 2
·用VS.NET讀取Flash格式文件信
·在ASP.NET中使用AJAX的簡(jiǎn)單方
·VS.NET 2005中常用的一些代碼
·安裝VS.NET 2005 SP1補(bǔ)丁全攻
相關(guān)信息
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯(cuò)
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時(shí)代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實(shí)很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個(gè)傳說
丟了幸福的豬
找個(gè)人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因?yàn)榧拍畔肽?/a>
愛上你等于愛上了錯(cuò)
在心里從此永遠(yuǎn)有個(gè)你
一個(gè)人的寂寞兩個(gè)人的錯(cuò)
主站蜘蛛池模板: 磐石市| 瑞安市| 浠水县| 罗源县| 瑞丽市| 北流市| 阿合奇县| 龙陵县| 溆浦县| 定边县| 阜宁县| 唐海县| 厦门市| 东乌珠穆沁旗| 和林格尔县| 闸北区| 西宁市| 岐山县| 西城区| 永顺县| 江永县| 丹阳市| 河曲县| 福贡县| 江源县| 嘉定区| 海淀区| 西藏| 高碑店市| 石楼县| 宜兰市| 喜德县| 海盐县| 昌宁县| 额尔古纳市| 佛坪县| 滕州市| 彰化市| 中西区| 七台河市| 泰宁县|