程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> ajax實現用戶在線離線

ajax實現用戶在線離線

編輯:.NET實例教程
最近設計一個VB.Net的項目,應用了AjaxPro2,覺得確實不錯,很多妙用在其中,下面就記錄一個用Ajax來處理用戶在線離線的問題,沒有Ajax的時候都是寫到Session_End裡面,用Ajax也很容易實現,在這裡假設你的Ajax已經配置好,如果沒有AjaxPro的支持,你就要考慮項目是否要用AJax了,因為它會增加項目大量的腳本。

首先你要有一個用戶表,表裡面設計一個字段ONLINEKBN(在線區分),默認1為在線,0為離線。

幀結構主窗口關閉前事件,此事件點擊浏覽器關閉的時候觸發。



<script type="text/Javascript">
 function window.onbeforeunload()
 ...{
     var strUserId = document.getElementById("hidUserId").value;
     CO2Reduction.Index.AJax_UpdKbn(strUserId);
};
</script>
//隱藏控件
<input id = "hidUserId" runat="server" type="text" value=""/>

Login.ASPx登陸的時候,更新用戶的狀態為在線狀態(1)。




<AjaxPro.AJaxMethod()> _
        Public Function CheckUserInfo()Function CheckUserInfo(ByVal strUserID As String, _
                            ByVal strPassWord As String) As String
......................
......................
                    //Check成功後,更新表裡的在線區分
                    strUpdSql.Append(" UPDATE 用戶表 SET   ")
                    strUpdSql.Append("     ONLINEKBN = '1'       ")
                    strUpdSql.Append(" WHERE       ")
                    strUpdSql.Append("     USERID= ")
                    strUpdSql.Append(" '" + strUserID + "'")
                    strUpdSql.Append(" AND        ")
                    strUpdSql.Append("     KBN='0'")
......................
......................
                    Return ""
        End Function

因為Login.ASPx是作為主窗口的一個幀畫面的,所以用AJax驗證用戶後在Login.JS裡的回調函數裡給主窗口的隱藏控件設置用戶登陸番號。



window.parent.document.getElementById('hidUserId').value=document.getElementById('txtUserID').value;

主窗口關閉觸發事件AJax調用後台函數,利用參數(用戶),更新用戶表裡面的在線區分(0)。



<AjaxPro.AJaxMethod()> _
        Public Function Ajax_UpdKbn()Function AJax_UpdKbn(ByVal strUserId As String) As Boolean
                //連接我就不寫在這裡了
                Dim strUpdSql As New StringBuilder

                strUpdSql.Append(" UPDATE 用戶表 SET   ")
                strUpdSql.Append("     ONLINEKBN = '0'       ")
                strUpdSql.Append(" WHERE       ")
                strUpdSql.Append("     USERID= ")
                strUpdSql.Append(" '" & strUserId & "'")
                strUpdSql.Append(" AND         ")
                strUpdSql.Append("     KBN='0'")

            Return True
        End Function可以了,關閉窗體,狀態就變回來了,不用寫到Session_End裡面了。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved