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