ASP.NET-Sitzungen mit AJAX verlängern
Die Aufrechterhaltung aktiver ASP.NET-Sitzungen ist für ein reibungsloses Benutzererlebnis von entscheidender Bedeutung. Eine robuste Methode nutzt AJAX-Aufrufe, um die Sitzung regelmäßig zu aktualisieren und so Zeitüberschreitungen zu vermeiden.
Implementieren eines AJAX-Sitzungs-Heartbeats
Dieser Ansatz verwendet einen wiederkehrenden jQuery-AJAX-Aufruf (z. B. alle 5 Minuten) an einen dedizierten HTTP-Handler: „SessionHeartbeat.ashx.“ Der einzige Zweck dieses Handlers ist die Sitzungswartung. Der C#-Code für diesen Handler lautet:
<code class="language-csharp">public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState { public bool IsReusable { get { return false; } } public void ProcessRequest(HttpContext context) { context.Session["Heartbeat"] = DateTime.Now; } }</code>
Die entsprechende clientseitige JavaScript-Funktion ist:
<code class="language-javascript">function setHeartbeat() { setTimeout("heartbeat()", 5*60*1000); // Every 5 minutes } function heartbeat() { $.get( "/SessionHeartbeat.ashx", null, function(data) { setHeartbeat(); }, "json" ); }</code>
Verbesserung der Benutzeroberfläche
Für visuelles Feedback (und die weitere Sitzungspflege) können wir CSS und HTML hinzufügen:
<code class="language-javascript">function beatHeart(times) { var interval = setInterval(function () { $(".heartbeat").fadeIn(500, function () { $(".heartbeat").fadeOut(500); }); }, 1000); // Beat every second // Clear interval after 'times' iterations (with 100ms buffer) setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100); } /* HEARBEAT CSS */ .heartbeat { position: absolute; display: none; margin: 5px; color: red; right: 0; top: 0; }</code>
Vorteile von AJAX Session Heartbeats
Das obige ist der detaillierte Inhalt vonWie können AJAX-Aufrufe ASP.NET-Sitzungen am Leben halten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!