Heim > Backend-Entwicklung > C++ > Wie können AJAX-Aufrufe ASP.NET-Sitzungen am Leben halten?

Wie können AJAX-Aufrufe ASP.NET-Sitzungen am Leben halten?

Linda Hamilton
Freigeben: 2025-01-13 07:56:46
Original
199 Leute haben es durchsucht

How Can AJAX Calls Keep ASP.NET Sessions Alive?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Vorteile von AJAX Session Heartbeats

  • Diskreter Betrieb: Die Sitzungswartung ist für den Benutzer transparent.
  • Sitzungspersistenz: Sitzungen bleiben aktiv, solange das Browserfenster geöffnet ist.
  • Flexible Frequenz: Das Herzschlagintervall ist leicht einstellbar.
  • Verbesserte Benutzererfahrung:Sorgt für unterbrechungsfreie Benutzersitzungen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage