Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencegah Tamat Tempoh Sesi ASP.NET Pramatang Kerana Tidak Aktif?

Bagaimanakah Saya Boleh Mencegah Tamat Tempoh Sesi ASP.NET Pramatang Kerana Tidak Aktif?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-13 06:12:41737semak imbas

How Can I Prevent Premature ASP.NET Session Expiration Due to Inactivity?

Memanjangkan Sesi ASP.NET: Pendekatan Praktikal

Mengekalkan sesi pengguna aktif adalah penting untuk pengalaman aplikasi web yang lancar. Tamat tempoh sesi pramatang akibat ketidakaktifan boleh mengganggu aliran kerja dan menyebabkan kehilangan data. Artikel ini membentangkan penyelesaian menggunakan panggilan AJAX bermasa untuk mengelakkan isu biasa ini.

Mengekalkan Sesi Hidup dengan AJAX

Menghantar permintaan HTTP secara berkala ke pelayan dengan berkesan menyegarkan cap masa sesi, menghalang tamat tempoh. Kaedah ringan ini meminimumkan gangguan kepada interaksi pengguna.

Melaksanakan Pengendali Muat Semula Sesi

Pengendali HTTP mudah memproses permintaan GET dan mengemas kini cap masa sesi. Berikut ialah pelaksanaan asas:

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

Daftar pengendali ini dalam web.config:

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

JavaScript untuk Panggilan AJAX Berjadual

JavaScript pihak pelanggan melaksanakan panggilan AJAX bermasa kepada pengendali SessionHeartbeat.ashx. Contoh jQuery ini menunjukkan proses:

<code class="language-javascript">function setHeartbeat() {
    setTimeout("heartbeat()", 5*60*1000); // Every 5 minutes
}

function heartbeat() {
    $.get(
        "/SessionHeartbeat.ashx",
        null,
        function(data) {
            //$("#heartbeat").show().fadeOut(1000); // Optional visual feedback
            setHeartbeat();
        },
        "json"
    );
}</code>

Menambah Maklum Balas Visual (Pilihan)

Tingkatkan pengalaman pengguna dengan memasukkan penunjuk visual, seperti ikon berdenyut, untuk mengesahkan muat semula sesi. Contoh ini menggunakan ikon hati:

<code class="language-javascript">// Animate a heart icon
function beatHeart(times) {
    var interval = setInterval(function () {
        $(".heartbeat").fadeIn(500).fadeOut(500);
    }, 1000); // Beat every second
    setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100);
}</code>

Ringkasan

Menggunakan panggilan AJAX bermasa kepada pengendali khusus menyediakan kaedah yang mantap dan tidak mengganggu untuk mengekalkan sesi ASP.NET yang aktif. Teknik mudah ini menghalang sesi pramatang tamat, memastikan pengalaman pengguna yang lancar dan tidak terganggu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Tamat Tempoh Sesi ASP.NET Pramatang Kerana Tidak Aktif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn