建一个表存储用户状态的表,然后用AJAX在JS里LOAD和onbeforeunload时进行数据库的操作,不知道这样可以不可以?????大侠给指导指导!!能给出相关的代码最好

解决方案 »

  1.   

    我的想法就是在LOAD的时候写入数据(用户和所在页面),然后在beforeunload删除,因为JS不能操作服务器端,现在好象只要用AJAX
      

  2.   

    当然还可以用Session和Application,这个问题的重点是AJAX和JS的LOAD BEFOREUNLOAD
      

  3.   

    其实不需要用AJAX,.Net不是有Load和OnUnload的事件吗?
      

  4.   

    倒奶cms完全满足
    http://dnetcms.anyp.cn/
      

  5.   

    是啊,可以用OnUnload事件处理
      

  6.   

    .NET是有Load和OnUnload的事件吗,但是我试过OnUnload好象没有什么效果,而且你想如果是你点了页面的某个按扭,OnUnload事件也是会被触发。
      

  7.   

    那是因为.net按钮会Post页面的原因,所以才会触发OnUnload事件,你可以用IsPostBack判断以下哦
      

  8.   

    http://www.gzgov.net/qq/index.htm?QQ=285985
    那里兄弟帮我点一下,十分感谢
      

  9.   

    问题没有你想的那么简单,你现在的思路是不能精确记录在线人数的,要想精确记录在线人数,举个例子,比如聊天室显示在线人数,当用户输入妮称登陆后,服务器用Application变量记录在线人数加一,并把该用户记录到指针链表中(如果是用了没有指针链表的语言可以用数组来代替,如asp),
    客户端网页在关闭浏览器的时候可以通过onunload事件和判断鼠标位置的方法判断是否是关闭浏览器,在该事件中调用Ajax方法告诉服务器该用户已经退出了,在线人数减一,客户端的代码如下:
    <SCRIPT event="onunload" for="window">
    if(window.event.clientX<0)
    {
    //是关闭浏览器
    PublicAjax.KinExit('<%=Request.QueryString["MeetingID"].ToString()%>','<%=Session["feeMobile"].ToString()%>','<%=Session["StudentName"].ToString()%>');  //Ajax方法告诉服务器该用户已经退出了,在线人数减一
    }
    </SCRIPT>
    这是我以前写的一写代码
    到此很多人以为就做完了,其实这还是不能精确记录在线人数的,因为在某人网络断线的情况下,服务器是不知道该用户已经下线了的,解决的办法如下:
    客户端定时给服务器发包,在服务器上建一个时间链表,该时间链表记录每个用户的上一次的定时发包时间,然后服务器定时检测该时间链表,如果检查到某用户在规定的时间内没有发包到服务器就证明该用户已经断线了。
    只有这样才能精确记录在线人数
      

  10.   

    TO:Cassava(车超)
    首先谢谢你,看了你文章胜读10年书,但是我还有几个疑问:象你这样好象不能记录用户所在的页面 ,然后就是在客户端定时给服务器发包怎么实现?还有就是我在LOAD来进行写入用户的位置有什么不妥??
      

  11.   

    定时给服务器发包
    function Window_Load()
    {
    window.setTimeout("Refresh()",20000);
    }
    function Refresh()  
    {
    PublicAjax.Refresh("<%=MeetingID.Text%>");    //这里就是调用Ajax方法给服务器发包了
    window.setTimeout("RefreshSMS()",20000); //20秒刷新一次
    }记录用户所在的页面,把上面的Refresh函数改一下
    function Refresh()  
    {
    PublicAjax.Refresh("你页面的名称");  //这里就是调用Ajax方法给服务器发包了
    window.setTimeout("RefreshSMS()",20000); //20秒刷新一次
    }现在服务器不就可以通过Refresh函数的参数知道用户所在的页面了吗
      

  12.   

    可以参考我的思路去做,逻辑很清楚地!http://www.xshweb.com/Article/108/10806.html