Heim > Backend-Entwicklung > C++ > Wie kann ich meine ASP.NET-Sitzung mit unaufdringlichem AJAX am Leben halten?

Wie kann ich meine ASP.NET-Sitzung mit unaufdringlichem AJAX am Leben halten?

Barbara Streisand
Freigeben: 2025-01-13 08:22:43
Original
962 Leute haben es durchsucht

How Can I Keep My ASP.NET Session Alive Using Unobtrusive AJAX?

ASP.NET-Sitzungen mit subtilen AJAX-Aufrufen verlängern

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.

AJAX-Implementierungsdetails

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

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

Web.config-Konfiguration

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

Verbesserung der Benutzererfahrung durch visuelles Feedback

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>
Nach dem Login kopieren
<code class="language-css">.heartbeat {
    position: absolute;
    display: none;
    margin: 5px;
    color: red;
    right: 0;
    top: 0;
}</code>
Nach dem Login kopieren

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!

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