ホームページ >バックエンド開発 >C++ >目立たない AJAX を使用して ASP.NET セッションを維持するにはどうすればよいですか?

目立たない AJAX を使用して ASP.NET セッションを維持するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-13 08:22:43926ブラウズ

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

微妙な AJAX 呼び出しによる ASP.NET セッションの延長

ブラウザ セッションが延長されると、サーバー側のセッション タイムアウトが発生することがよくあります。 この記事では、ダミー ハンドラーへの時間指定された AJAX リクエストを使用してこの問題に対処し、継続的なセッション アクティビティを確保する非侵入的な方法を紹介します。

AJAX 実装の詳細

次の jQuery コードは、5 分ごとに SessionHeartbeat.ashx への定期的な AJAX 呼び出しを開始します。この単純な ping により、セッションのタイムアウト カウンターが更新されます。

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

セッションハンドラー: SessionHeartbeat.ashx

この HTTP ハンドラーはセッションの有効期間を管理します。 IRequiresSessionState を実装すると、Session オブジェクトへのアクセスが保証されます。

<code class="language-csharp">public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
        context.Session["Heartbeat"] = DateTime.Now;
    }
}</code>

Web.config 構成

ハンドラーは web.config に登録されています:

<code class="language-xml"><httphandlers>
  <add path="SessionHeartbeat.ashx" type="SessionHeartbeatHttpHandler" validate="false" verb="GET,HEAD" />
</httphandlers></code>

視覚的なフィードバックによるユーザー エクスペリエンスの向上

シンプルなハートビート アニメーションにより、セッションの維持を視覚的に確認できます。 次の CSS と JavaScript はこの効果を作成します。

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

このソリューションは、ブラウザ ウィンドウの存続期間中、ASP.NET セッションを効果的に拡張し、フォームとアプリケーションの機能を維持します。

以上が目立たない AJAX を使用して ASP.NET セッションを維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。