中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET如何關閉頁面服務端及對話層清空

發布時間:2021-11-26 18:03:21 來源:億速云 閱讀:148 作者:柒染 欄目:編程語言

這篇文章給大家介紹ASP.NET如何關閉頁面服務端及對話層清空,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

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

window.onbeforeunload = function()   {      //這是網上找的,具體沒驗證過
  •       var n = window.event.screenX - window.screenLeft;   

  •       var b = n > document.documentElement.scrollWidth-20;   

  •       if(b && window.event.clientY < 0 || window.event.altKey)     

  •       {     

  •           ClearSession();   

  •       }     

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

    ========================Default.aspx 開始===========================================   
    <%@ Page Language="C#" AutoEventWireup="true" 
    CodeFile="Default.aspx.cs" Inherits="_Default" %>     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head runat="server">      
    <title>無標題頁</title>         
    <script type="text/javascript" src="script.js"></script>     
    </head>  
    <body>      
    <form id="form1" runat="server">          
    <div>              
    <asp:Label ID="Label1" runat="server"></asp:Label>              
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="寫入Session" /></div>      
    </form>  
    </body>  
    </html>  
    ========================Default.aspx 結束===========================================   
    ========================Default.aspx.cs 開始===========================================   
    using System;  
    using System.Data;  
    using System.Configuration;  
    using System.Web;  
    using System.Web.Security;  
    using System.Web.UI;  
    using System.Web.UI.WebControls;  
    using System.Web.UI.WebControls.WebParts;  
    using System.Web.UI.HtmlControls;     
    public partial class _Default : System.Web.UI.Page  {      
    protected void Page_Load(object sender, EventArgs e)      {                    
    if (!string.IsNullOrEmpty(Request.QueryString["___command"]))          {              
    string cmd = Request.QueryString["___command"];              
    if (cmd == "ClearSession")                  
    Session.Remove("name");//清空Session          
    }             
    if (Session["name"] != null)              
    this.Label1.Text = Session["name"].ToString();      
    }      protected void Button1_Click(object sender, EventArgs e)      
    {          Session["name"] = "vvvvvvvvvvvvv";          
    if (Session["name"] != null)              
    this.Label1.Text = Session["name"].ToString();      
    }  
    }     
    ========================Default.aspx.cs 結束===========================================      
    ========================script.js 開始===========================================   
    function GetXmlHttpObject()   {      
    //創建XMLHttpRequest對象來發送和接收HTTP請求與響應     
     xmlHttpObj = null;      try       {          
     // FireFox Opera 8.0+ Safari          
     xmlHttpObj = new XMLHttpRequest();          
     if(xmlHttpObj.overrideMimeType)          
      {              
      xmlHttpObj.overrideMimeType('text/xml');         
       }     
      }      
       catch(e)       {          
       // IE          try           {              
       xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP");         
        }           
        catch(e)           
        {             
         xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP");         
          }     
           }      
           return xmlHttpObj; 
            }    
             function StateChanged()   {      
             if(___xmlHttp.readyState == 4)       {           
             if(___xmlHttp.status == 200)           {          
       }           else           {         
                 }      
              }  
     }     
              var ___xmlHttp=null; 
       function ClearSession()  
       {     
                 if(___xmlHttp==null)    
                       ___xmlHttp = GetXmlHttpObject();    
      if(___xmlHttp == null)        
                            return false;              
     var url = "?___command=ClearSession&___clientRandom=" + Math.random();         
     ___xmlHttp.open("GET", url, true);      
     ___xmlHttp.onreadystatechange = StateChanged;      
     ___xmlHttp.send(null);        }     
     window.onbeforeunload = function()   {          
      var n = window.event.screenX - window.screenLeft;      
         var b = n > document.documentElement.scrollWidth-20;     
             if(b && window.event.clientY < 0 || window.event.altKey)   
       {               ClearSession();       
       }   
     }


關于ASP.NET如何關閉頁面服務端及對話層清空就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华蓥市| 石台县| 正镶白旗| 巴南区| 稻城县| 新泰市| 道孚县| 子洲县| 贵溪市| 同仁县| 确山县| 留坝县| 北宁市| 洪江市| 延庆县| 德庆县| 都江堰市| 治多县| 桦南县| 红安县| 甘泉县| 寻甸| 晋中市| 五河县| 鄢陵县| 韶山市| 邹平县| 醴陵市| 无锡市| 射阳县| 酒泉市| 泸水县| 溆浦县| 闸北区| 墨竹工卡县| 泽库县| 德安县| 北碚区| 溧阳市| 遂溪县| 和静县|