장시간의 사용자 세션은 원활한 온라인 경험을 위해 매우 중요하며, 특히 사용자가 브라우저 창을 오랫동안 열어둔 경우 더욱 그렇습니다. 그러나 세션 시간 초과 연장과 같은 기존 방법은 보안과 성능을 저하시키는 경우가 많습니다.
이 기사에서는 시간이 지정된 AJAX 호출을 사용하여 자동으로 활성 세션을 유지하는 미묘한 해결책을 제시합니다. 여기에는 정기적으로 전용 핸들러에 요청을 보내고 사용자의 작업 흐름을 방해하지 않고 세션을 새로 고치는 작업이 포함됩니다.
jQuery 함수는 일정한 간격(예: 5분마다)으로 SessionHeartbeat.ashx
핸들러에 대한 AJAX 호출을 시작합니다.
<code class="language-javascript">function setHeartbeat() { setTimeout("heartbeat()", 5*60*1000); // Every 5 minutes } function heartbeat() { $.get( "/SessionHeartbeat.ashx", null, function(data) { // Session heartbeat logic (optional visual cue) setHeartbeat(); }, "json" ); }</code>
SessionHeartbeatHttpHandler
(아래)는 IRequiresSessionState
을 활용하여 세션에 액세스하고 간단히 "Heartbeat" 세션 변수를 업데이트합니다.
<code class="language-csharp">public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Session["Heartbeat"] = DateTime.Now; } }</code>
web.config
:
<code class="language-xml"><httphandlers> <add path="SessionHeartbeat.ashx" type="SessionHeartbeatHttpHandler" validate="false" verb="GET,HEAD" /> </httphandlers></code>
향상된 사용자 경험을 위해 CSS 및 HTML을 사용하여 미묘한 시각적 하트비트 애니메이션을 추가하세요.
<code class="language-html"><div class="heartbeat">♥</div></code>
<code class="language-css">.heartbeat { position: absolute; display: none; margin: 5px; color: red; right: 0; top: 0; }</code>
beatHeart
함수(아래)는 애니메이션의 페이드 인/페이드 아웃 동작을 제어합니다.
<code class="language-javascript">// Animate the heartbeat 'times' times function beatHeart(times) { var interval = setInterval(function () { $(".heartbeat").fadeIn(500, function () { $(".heartbeat").fadeOut(500); }); }, 1000); // Beat every second // Clear interval after 'times' beats (with 100ms buffer) setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100); }</code>
이 접근 방식은 ASP.NET 세션을 유지 관리하는 원활하고 방해가 되지 않는 방법을 제공하여 오랜 시간 동안 사용하지 않는 경우에도 긍정적인 사용자 경험을 보장합니다.
위 내용은 사용자 경험에 영향을 주지 않고 ASP.NET 세션을 활성 상태로 유지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!