国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:14:20
字體:
供稿:網(wǎng)友
站點(diǎn)用戶統(tǒng)計是每一個站點(diǎn)比有得功能,但是很少有人實(shí)現(xiàn)在線用戶統(tǒng)計得絕對精確或者說是相對精確,基于Web得原理,服務(wù)器不會主動知道用戶通過關(guān)閉瀏覽器離開站點(diǎ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é)果與大家分享,大家也多給點(diǎn)意見 
首先我嘗試了在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)就可以使用該方法。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 高平市| 汝南县| 仁怀市| 咸宁市| 涟水县| 珠海市| 垣曲县| 固阳县| 高邮市| 平舆县| 库伦旗| 房山区| 靖州| 斗六市| 梅河口市| 哈巴河县| 五台县| 红安县| 喀什市| 当阳市| 台南市| 虹口区| 天峨县| 合水县| 壶关县| 涞水县| 昌平区| 华阴市| 黄陵县| 商丘市| 呼伦贝尔市| 汤阴县| 徐汇区| 杂多县| 太湖县| 禹城市| 周至县| 兴海县| 阳朔县| 潼南县| 余干县|