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
Lepaskan: 2025-01-13 06:12:41
asal
688 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan