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
Libérer: 2025-01-13 07:56:46
original
197 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal