<%@ Page Language="c#" %>
<script runat="server">
        void Page_Load(Object sender, EventArgs e)
        {
            int temp = (int)Application["UserOnline"];
            Application["UserOnline"] = temp + 1;
        }
    
        void Page_UnLoad(Object source, EventArgs e)
        {
            int temp = (int)Application["UserOnline"];
            Application["UserOnline"] = temp - 1;
        }</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        一共有<%=Application["UserOnline"]%>个在线用户!
    </form>
</body>
</html>--------------------
我在globe.asax里面当Application_OnStart的时候把Application["UserOnline"]初始化为1了,但是调用这个页面的时候,显示都是"一共有1个在线用户!"(即使同时打开多个页面)
请问是怎么回事啊?? 谢谢

解决方案 »

  1.   

    你要知道,Web页面是无连接状态的。服务器在发送一个页面信息的时候,开始发送的时候,页面状态是Load,但当服务器发送完成的时候,页面也就转成Un_Load了。而不是你在关闭页面的时候引发Un_Load事件。
    所以呢,在Load事件执行完之后就接着执行Un_Load事件了。等于没减也没加。
    你可以在两个事件中设置断点试一下
      

  2.   

    你在一个page的life cycle中做了一次、又做了一次减,当然不变了。