色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

asp.net下判斷用戶什么時候離開,以什么方式離開

站點用戶統(tǒng)計是每一個站點比有得功能,但是很少有人實現(xiàn)在線用戶統(tǒng)計得絕對精確或者說是相對精確,基于Web得原理,服務(wù)器不會主動知道用戶通過關(guān)閉瀏覽器離開站點,這時候只能依靠服務(wù)器端變量Session得過期來判斷用戶是否離開,但用戶瀏覽器是可以知道自己何時關(guān)閉得,代碼也非常簡單 

如下: 

function body_onunload() 



   if(window.event.clientX<0) 

   { 

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

   } 

    else 

    { 

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

    } 


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


--------------------------------------------------------------------------------------------------- 
下午的時候,用代碼測試了一下,主要是利用上面的js函數(shù),結(jié)合ajax技術(shù),由于對ajax技術(shù)了解的不是很透徹,前后嘗試了三次。 
現(xiàn)將嘗試結(jié)果與大家分享,大家也多給點意見 
首先我嘗試了在ajax方法中訪問Application,企圖用Application變量來記錄在線人數(shù)。嘗試代碼: 
[AjaxPro.AjaxMethod] 
  public int Logoff()  
  {    
       Application["onlineCount"]=Convert.ToInt32(Application["onlineCount"])-1; 
      return      Convert.ToInt32(Application["onlineCount"]); 
  } 
嘗試失敗!估計是ajax不能訪問應(yīng)用程序的靜態(tài)變量和Application變量。第一次使用AjaxPro不知道如何設(shè)置可以訪問Session,以前使用的是ajax.dll,設(shè)置成可以讀寫Session,嘗試結(jié)果可能發(fā)生改變! 
第二種我嘗試了用文本文件記錄在線人數(shù),仍然失敗! 
第三中,采用數(shù)據(jù)庫!嘗試成功。 
代碼如下: 
[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; 

  } 
前臺頁面縮 


 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()"> 
這樣的話,在對安全行和及時性要求比較嚴(yán)格的情礦下,將一個頁面設(shè)置為主頁面,如果該頁面關(guān)閉,表示用戶已經(jīng)退出。電子郵件系統(tǒng)就可以使用該方法。 

AspNet技術(shù)asp.net下判斷用戶什么時候離開,以什么方式離開,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 巴彦淖尔市| 丹寨县| 三穗县| 昭觉县| 利津县| 兴安盟| 措勤县| 石屏县| 永川市| 石屏县| 连山| 长岛县| 互助| 孟州市| 平原县| 商都县| 海丰县| 齐河县| 南投县| 南召县| 黑龙江省| 齐河县| 伊川县| 沧州市| 乐清市| 连城县| 平原县| 泉州市| 哈尔滨市| 塘沽区| 晋城| 内乡县| 福贡县| 潼南县| 科尔| 崇明县| 上虞市| 湘潭市| 舞阳县| 乌苏市| 呼和浩特市|