Memanjangkan Sesi ASP.NET dengan AJAX
Mengekalkan sesi ASP.NET aktif adalah penting untuk pengalaman pengguna yang lancar. Kaedah yang mantap menggunakan panggilan AJAX untuk menyegarkan semula sesi secara berkala, menghalang tamat masa.
Melaksanakan Degupan Jantung Sesi AJAX
Pendekatan ini menggunakan panggilan AJAX jQuery, berulang (mis., setiap 5 minit), kepada pengendali HTTP khusus: "SessionHeartbeat.ashx." Tujuan pengendali ini hanyalah penyelenggaraan sesi. Kod C# untuk pengendali ini ialah:
<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>
Fungsi JavaScript sisi klien yang sepadan ialah:
<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>
Mempertingkatkan Antara Muka Pengguna
Untuk maklum balas visual (dan penyelenggaraan sesi berterusan), kami boleh menambah CSS dan 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>
Kelebihan Degupan Jantung Sesi AJAX
Atas ialah kandungan terperinci Bagaimanakah Panggilan AJAX Boleh Memastikan Sesi ASP.NET Hidup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!