使用 AJAX 延长 ASP.NET 会话
维护活动的 ASP.NET 会话对于流畅的用户体验至关重要。 稳健的方法利用 AJAX 调用定期刷新会话,防止超时。
实现 AJAX 会话心跳
此方法采用 jQuery AJAX 调用,对专用 HTTP 处理程序重复进行(例如,每 5 分钟一次):“SessionHeartbeat.ashx”。该处理程序的唯一目的是会话维护。 该处理程序的 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中文网其他相关文章!