Heim >Backend-Entwicklung >C++ >Wie kann ich meine ASP.NET-Sitzung mit unaufdringlichem AJAX am Leben halten?
Längere Browsersitzungen führen häufig zu serverseitigen Sitzungszeitüberschreitungen. In diesem Artikel wird eine nicht aufdringliche Methode vorgestellt, die zeitgesteuerte AJAX-Anfragen an einen Dummy-Handler verwendet, um dieses Problem zu beheben und eine kontinuierliche Sitzungsaktivität sicherzustellen.
Der folgende jQuery-Code initiiert alle fünf Minuten einen wiederkehrenden AJAX-Aufruf an SessionHeartbeat.ashx
. Dieser einfache Ping aktualisiert den Timeout-Zähler der Sitzung.
<code class="language-javascript">function setHeartbeat() { setTimeout("heartbeat()", 5*60*1000); // 5-minute interval } function heartbeat() { $.get("/SessionHeartbeat.ashx", function(data) { // Session refresh confirmation setHeartbeat(); }, "json"); }</code>
SessionHeartbeat.ashx
Dieser HTTP-Handler verwaltet die Sitzungslebensdauer. Die Implementierung von IRequiresSessionState
garantiert den Zugriff auf Sitzungsobjekte.
<code class="language-csharp">public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Session["Heartbeat"] = DateTime.Now; } }</code>
Der Handler ist registriert in web.config
:
<code class="language-xml"><httphandlers> <add path="SessionHeartbeat.ashx" type="SessionHeartbeatHttpHandler" validate="false" verb="GET,HEAD" /> </httphandlers></code>
Eine einfache Herzschlaganimation bietet eine visuelle Bestätigung der Sitzungserhaltung. Das folgende CSS und JavaScript erzeugen diesen Effekt.
<code class="language-javascript">function beatHeart(times) { var interval = setInterval(function () { $(".heartbeat").fadeIn(500).fadeOut(500); }, 1000); // 1-second beat setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100); }</code>
<code class="language-css">.heartbeat { position: absolute; display: none; margin: 5px; color: red; right: 0; top: 0; }</code>
Diese Lösung verlängert ASP.NET-Sitzungen effektiv für die Dauer des Browserfensters und behält dabei die Formular- und Anwendungsfunktionalität bei.
Das obige ist der detaillierte Inhalt vonWie kann ich meine ASP.NET-Sitzung mit unaufdringlichem AJAX am Leben halten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!