zoukankan      html  css  js  c++  java
  • 在线人数的统计

       统计在线人数,在论坛或聊天软件中用的比较多,无论是在线人数的统计还是网站被访问的总数,在这里我们都要用到Application来保存状态,这点不用多说,在asp.net中我们可以使用全局应用程序Global.asax来实现这些功能,下面是自己简单写的一个实例:

      

    <%@ Application Language="C#" %>

    <script runat="server">

        void Application_Start(object sender, EventArgs e)
        {
            //在应用程序启动时运行的代码
            Application["count"] = 0;
        }
       
        void Application_End(object sender, EventArgs e)
        {
            //在应用程序关闭时运行的代码

        }
           
        void Application_Error(object sender, EventArgs e)
        {
            //在出现未处理的错误时运行的代码

        }

        void Session_Start(object sender, EventArgs e)
        {
            //在新会话启动时运行的代码
            Application.Lock();
           Application["count"]= (Convert.ToInt32(Application["count"])+1).ToString();
            Application.UnLock();
        }

        void Session_End(object sender, EventArgs e)
        {
            //在会话结束时运行的代码。
            // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
            // InProc 时,才会引发 Session_End 事件。如果会话模式
            //设置为 StateServer 或 SQLServer,则不会引发该事件。
            Application.Lock();
            Application["count"] = (Convert.ToInt32(Application["count"]) -1).ToString();
            Application.UnLock();
        }
          
    </script>
    在配置文件中web.config也需要配置以下信息

    <sessionState mode="InProc" timeout="1"></sessionState>

    session的时间设置为1,这样当用户关闭浏览器的时候,也能很快从application中移除

    上面用到了Application.Lock()和Application.UnLock(),主要是为了防止同时多个用户一起访问,这样的话如果不这样处理,就会被当做一个用户来处理,所以要先锁住,一个一个统计;

     

    有时候还要考虑到服务器端点或死机的情况,可以把访问数记录下来,然后读取,在这里就不在多说了,自己慢慢研究吧

    多思考,多创新,才是正道!
  • 相关阅读:
    hdu 携程全球数据中心建设 (球面距离 + 最小生成树)
    next_permutation()函数 和 prev_permutation() 按字典序求全排列
    poj 3792 Area of Polycubes (简单模拟)
    poj 3790 Recursively Palindromic Partitions (递推)
    hdu 1575 Tr A (矩阵快速幂入门题)
    hdu 2986 Ballot evaluation (模拟)
    sscanf() 和 sprintf()的用法。
    Codeforces Round #239 (Div. 2)
    hdu 2372 El Dorado (dp)
    hdu 3433 A Task Process(dp+二分)
  • 原文地址:https://www.cnblogs.com/shuang121/p/1974852.html
Copyright © 2011-2022 走看看