AJAX を使用した ASP.NET セッションの延長
アクティブな ASP.NET セッションを維持することは、スムーズなユーザー エクスペリエンスにとって不可欠です。 堅牢な方法では、AJAX 呼び出しを利用してセッションを定期的に更新し、タイムアウトを防ぎます。
AJAX セッション ハートビートの実装
このアプローチでは、専用の HTTP ハンドラー「SessionHeartbeat.ashx」に対して jQuery AJAX 呼び出しを繰り返し (たとえば、5 分ごとに) 呼び出します。このハンドラーの唯一の目的はセッションの維持です。 このハンドラーの C# コードは次のとおりです:
<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>
対応するクライアント側 JavaScript 関数は次のとおりです:
<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>
ユーザーインターフェースの強化
視覚的なフィードバック (および継続的なセッションのメンテナンス) のために、CSS と 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>
AJAX セッション ハートビートの利点
以上がAJAX 呼び出しはどのようにして ASP.NET セッションを維持できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。