自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET 關(guān)閉頁面服務(wù)端對(duì)話層清空

開發(fā) 后端
在客戶端改變服務(wù)端的內(nèi)容部可能實(shí)現(xiàn),本文為大家介紹下ASP.NET 關(guān)閉頁面清除服務(wù)端Session的方法,希望對(duì)您有所幫助。

      要清掉Session必須回到服務(wù)端,在客戶端是不能改變服務(wù)端內(nèi)容的。ASP.NET 關(guān)閉頁面服務(wù)端對(duì)話層的清空我們可以變通下——使用ajax。首先我們要判斷用戶什么時(shí)候關(guān)閉了頁面,這樣才能執(zhí)行下一步動(dòng)作。不過HTML DOM沒要頁面關(guān)閉的事件,只有onunload和onbeforeunload是與ASP.NET 關(guān)閉頁面有關(guān)的,ASP.NET 關(guān)閉頁面或刷新后的事件,onbeforeunload是ASP.NET 關(guān)閉頁面或刷新前的事件,所以我們要用的是onbeforeunload。要判斷下用戶是關(guān)閉頁面還是在刷新頁面。代碼如下:

  1. window.onbeforeunload = function()   
  2. {     
  3.  //這是網(wǎng)上找的,具體沒驗(yàn)證過  
  4.       var n = window.event.screenX - window.screenLeft;   
  5.       var b = n > document.documentElement.scrollWidth-20;   
  6.       if(b && window.event.clientY < 0 || window.event.altKey)     
  7.       {     
  8.           ClearSession();   
  9.       }     

ClearSession()為ajax調(diào)用請求服務(wù)端,服務(wù)端接收到請求后執(zhí)行清空Session的操作。Ajax的東西不多說了,下面為代碼。

  1. ========================Default.aspx 開始===========================================  
  2.  
  3. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>  
  4.    
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  6. <html xmlns="http://www.w3.org/1999/xhtml">  
  7. <head runat="server">  
  8.     <title>無標(biāo)題頁</title>  
  9.    
  10.     <script type="text/javascript" src="script.js"></script>  
  11.    
  12. </head>  
  13. <body>  
  14.     <form id="form1" runat="server">  
  15.         <div>  
  16.             <asp:Label ID="Label1" runat="server"></asp:Label>  
  17.             <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="寫入Session" /></div>  
  18.     </form>  
  19. </body>  
  20. </html>  
  21. ========================Default.aspx 結(jié)束===========================================  
  22.  
  23.  
  24. ========================Default.aspx.cs 開始===========================================  
  25.  
  26. using System;  
  27. using System.Data;  
  28. using System.Configuration;  
  29. using System.Web;  
  30. using System.Web.Security;  
  31. using System.Web.UI;  
  32. using System.Web.UI.WebControls;  
  33. using System.Web.UI.WebControls.WebParts;  
  34. using System.Web.UI.HtmlControls;  
  35.    
  36. public partial class _Default : System.Web.UI.Page  
  37. {  
  38.     protected void Page_Load(object sender, EventArgs e)  
  39.     {  
  40.           
  41.         if (!string.IsNullOrEmpty(Request.QueryString["___command"]))  
  42.         {  
  43.             string cmd = Request.QueryString["___command"];  
  44.             if (cmd == "ClearSession")  
  45.                 Session.Remove("name");//清空Session  
  46.         }  
  47.    
  48.         if (Session["name"] != null)  
  49.             this.Label1.Text = Session["name"].ToString();  
  50.     }  
  51.     protected void Button1_Click(object sender, EventArgs e)  
  52.     {  
  53.         Session["name"] = "vvvvvvvvvvvvv";  
  54.         if (Session["name"] != null)  
  55.             this.Label1.Text = Session["name"].ToString();  
  56.     }  
  57. }  
  58.    
  59. ========================Default.aspx.cs 結(jié)束===========================================  
  60.  
  61.  
  62.  
  63.  
  64. ========================script.js 開始===========================================   
  65. function GetXmlHttpObject()   
  66. {  
  67.     //創(chuàng)建XMLHttpRequest對(duì)象來發(fā)送和接收HTTP請求與響應(yīng)  
  68.     xmlHttpObj = null;  
  69.     try   
  70.     {  
  71.         // FireFox Opera 8.0+ Safari  
  72.         xmlHttpObj = new XMLHttpRequest();  
  73.         if(xmlHttpObj.overrideMimeType)   
  74.         {  
  75.             xmlHttpObj.overrideMimeType('text/xml');  
  76.         }  
  77.     }   
  78.     catch(e)   
  79.     {  
  80.         // IE  
  81.         try   
  82.         {  
  83.             xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");  
  84.         }   
  85.         catch(e)   
  86.         {  
  87.             xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");  
  88.         }  
  89.     }  
  90.     return xmlHttpObj;  
  91. }  
  92.    
  93. function StateChanged()   
  94. {  
  95.     if(___xmlHttp.readyState == 4)   
  96.     {   
  97.         if(___xmlHttp.status == 200)   
  98.         {  
  99.         }   
  100.         else   
  101.         {  
  102.         }  
  103.     }  
  104. }  
  105.    
  106. var ___xmlHttp=null;  
  107. function ClearSession()   
  108. {  
  109.     if(___xmlHttp==null)  
  110.         ___xmlHttp = GetXmlHttpObject();  
  111.     if(___xmlHttp == null)   
  112.         return false;  
  113.           
  114.     var url = "?___command=ClearSession&___clientRandom=" + Math.random();  
  115.    
  116.     ___xmlHttp.open("GET", url, true);  
  117.     ___xmlHttp.onreadystatechange = StateChanged;  
  118.     ___xmlHttp.send(null);  
  119.       
  120. }  
  121.    
  122. window.onbeforeunload = function()   
  123. {     
  124.       var n = window.event.screenX - window.screenLeft;   
  125.       var b = n > document.documentElement.scrollWidth-20;   
  126.       if(b && window.event.clientY < 0 || window.event.altKey)     
  127.       {     
  128.           ClearSession();   
  129.       }     
  130. }   

本文來自:博客           作者:陳粵雄

【編輯推薦】

  1. 中途關(guān)閉ASP.NET是否影響服務(wù)器端執(zhí)行
  2. 關(guān)閉瀏覽器Session1分鐘失效ASP.NET的BUG
  3. 概述ASP.NET頁面框架
  4. 描述ASP.NET頁面表單
  5. ASP.NET 頁面對(duì)象模型
責(zé)任編輯:林琳 來源: Vincent's Blog
相關(guān)推薦

2009-07-29 17:26:39

ASP.NET頁面

2009-07-23 14:17:41

2009-09-03 18:37:35

ASP.net

2009-07-31 10:23:44

緩存頁面ASP.NET緩存

2009-08-03 13:38:18

ASP.NET編程模型

2009-07-29 14:35:34

頁面輸出緩存ASP.NET

2009-07-23 10:52:38

2009-07-27 15:25:40

aspx頁面ASP.NET

2009-07-31 10:33:54

ASP.NET頁面輸出

2009-08-05 18:22:55

2009-07-21 15:40:59

Asp.Net動(dòng)態(tài)頁面

2009-07-23 14:21:55

ASP.NET頁面

2009-07-28 16:40:11

ASP.NET異步頁面

2009-08-19 10:54:42

ASP.NET數(shù)據(jù)訪問

2009-07-27 12:56:27

控件CheckBoxLASP.NET服務(wù)器

2009-07-23 14:08:58

2009-07-31 13:06:53

CheckBoxLisASP.NET頁面

2009-07-29 16:41:45

ASP.NET頁面框架

2009-08-05 14:01:50

ASP.NET配置錯(cuò)誤

2009-07-28 16:03:23

ASP.NET狀態(tài)服務(wù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)