欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net下判斷用戶什么時(shí)候離開(kāi),以什么方式離開(kāi)

 更新時(shí)間:2007年03月07日 00:00:00   作者:  
站點(diǎn)用戶統(tǒng)計(jì)是每一個(gè)站點(diǎn)比有得功能,但是很少有人實(shí)現(xiàn)在線用戶統(tǒng)計(jì)得絕對(duì)精確或者說(shuō)是相對(duì)精確,基于Web得原理,服務(wù)器不會(huì)主動(dòng)知道用戶通過(guò)關(guān)閉瀏覽器離開(kāi)站點(diǎn),這時(shí)候只能依靠服務(wù)器端變量Session得過(guò)期來(lái)判斷用戶是否離開(kāi),但用戶瀏覽器是可以知道自己何時(shí)關(guān)閉得,代碼也非常簡(jiǎn)單 

如下: 

function body_onunload() 



   if(window.event.clientX<0) 

   { 

          alert('the broswer is closing...'); 

   } 

    else 

    { 

         alert('the user is refreshing or navigating away...); 

    } 


以上代碼就會(huì)判斷用戶是關(guān)閉瀏覽器還是刷新或者導(dǎo)航到其他頁(yè)面了! 


--------------------------------------------------------------------------------------------------- 
下午的時(shí)候,用代碼測(cè)試了一下,主要是利用上面的js函數(shù),結(jié)合ajax技術(shù),由于對(duì)ajax技術(shù)了解的不是很透徹,前后嘗試了三次。 
現(xiàn)將嘗試結(jié)果與大家分享,大家也多給點(diǎn)意見(jiàn) 
首先我嘗試了在ajax方法中訪問(wèn)Application,企圖用Application變量來(lái)記錄在線人數(shù)。嘗試代碼: 
[AjaxPro.AjaxMethod] 
  public int Logoff()  
  {    
       Application["onlineCount"]=Convert.ToInt32(Application["onlineCount"])-1; 
      return      Convert.ToInt32(Application["onlineCount"]); 
  } 
嘗試失敗!估計(jì)是ajax不能訪問(wèn)應(yīng)用程序的靜態(tài)變量和Application變量。第一次使用AjaxPro不知道如何設(shè)置可以訪問(wèn)Session,以前使用的是ajax.dll,設(shè)置成可以讀寫(xiě)Session,嘗試結(jié)果可能發(fā)生改變! 
第二種我嘗試了用文本文件記錄在線人數(shù),仍然失??! 
第三中,采用數(shù)據(jù)庫(kù)!嘗試成功。 
代碼如下: 
[AjaxPro.AjaxMethod] 
  public int Logoff()  
  {    
   SqlConnection conn = new  SqlConnection("server=.;database=test; uid=sa;pwd=123"); 
   SqlCommand cmd = new SqlCommand("update OnlineCount set num=num-1",conn); 
   try 
   { 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
   } 
   catch(Exception ex) 
   { 
    EventLog.WriteEntry(ex.Source,ex.Message); 
   } 
   finally 
   { 
    conn.Close(); 
   } 

   cmd = new SqlCommand("select top 1 num from OnlineCount",conn); 
   try 
   { 
    conn.Open(); 
    return Convert.ToInt32(cmd.ExecuteScalar()); 
   } 
   catch(Exception ex) 
   { 
    EventLog.WriteEntry(ex.Source,ex.Message); 
   } 
   finally 
   { 
    conn.Close(); 
   } 
   return 0; 

  } 
前臺(tái)頁(yè)面縮 


 1    <script language="javascript"> 
 2<!-- 
 3       function leave()  
 4       {  
 5          alert(window.event.clientX); 
 6          if(window.event.clientX<0) 
 7          { 
 8            WebApplication3.WebForm1.Logoff().value; 
 9          } 
10       } 
11//--> 
12        </script> 
13    </HEAD> 
14    <body onunload="leave()"> 
這樣的話,在對(duì)安全行和及時(shí)性要求比較嚴(yán)格的情礦下,將一個(gè)頁(yè)面設(shè)置為主頁(yè)面,如果該頁(yè)面關(guān)閉,表示用戶已經(jīng)退出。電子郵件系統(tǒng)就可以使用該方法。 

相關(guān)文章

最新評(píng)論