Maison >développement back-end >C++ >Comment les appels AJAX peuvent-ils maintenir les sessions ASP.NET en vie ?

Comment les appels AJAX peuvent-ils maintenir les sessions ASP.NET en vie ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-13 07:56:46199parcourir

How Can AJAX Calls Keep ASP.NET Sessions Alive?

Prolonger les sessions ASP.NET avec AJAX

Le maintien de sessions ASP.NET actives est vital pour une expérience utilisateur fluide. Une méthode robuste utilise des appels AJAX pour actualiser périodiquement la session, évitant ainsi les délais d'attente.

Implémentation d'un battement de cœur de session AJAX

Cette approche utilise un appel jQuery AJAX, récurrent (par exemple toutes les 5 minutes), vers un gestionnaire HTTP dédié : "SessionHeartbeat.ashx." Le seul objectif de ce gestionnaire est la maintenance de session. Le code C# de ce gestionnaire est :

<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>

La fonction JavaScript côté client correspondante est :

<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>

Amélioration de l'interface utilisateur

Pour un retour visuel (et une maintenance continue de la session), nous pouvons ajouter du CSS et du HTML :

<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>

Avantages des battements de cœur de session AJAX

  • Fonctionnement discret : La maintenance de la session est transparente pour l'utilisateur.
  • Persistance de la session : Les sessions restent actives tant que la fenêtre du navigateur est ouverte.
  • Fréquence flexible : L'intervalle de battement cardiaque est facilement réglable.
  • Expérience utilisateur améliorée : Garantit des sessions utilisateur ininterrompues.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn