首頁 > 後端開發 > C++ > AJAX 呼叫如何讓 ASP.NET 會話保持活動狀態?

AJAX 呼叫如何讓 ASP.NET 會話保持活動狀態?

Linda Hamilton
發布: 2025-01-13 07:56:46
原創
199 人瀏覽過

How Can AJAX Calls Keep ASP.NET Sessions Alive?

使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板