Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengekalkan Sesi ASP.NET Saya Menggunakan AJAX yang Tidak Menyentuh?
Sesi penyemak imbas yang dilanjutkan selalunya membawa kepada tamat masa sesi sebelah pelayan. Artikel ini membentangkan kaedah tidak mengganggu menggunakan permintaan AJAX bermasa kepada pengendali tiruan untuk menangani isu ini, memastikan aktiviti sesi berterusan.
Kod jQuery berikut memulakan panggilan AJAX berulang ke SessionHeartbeat.ashx
setiap lima minit. Ping mudah ini menyegarkan kaunter tamat masa sesi.
<code class="language-javascript">function setHeartbeat() { setTimeout("heartbeat()", 5*60*1000); // 5-minute interval } function heartbeat() { $.get("/SessionHeartbeat.ashx", function(data) { // Session refresh confirmation setHeartbeat(); }, "json"); }</code>
SessionHeartbeat.ashx
Pengendali HTTP ini menguruskan jangka hayat sesi. Melaksanakan IRequiresSessionState
menjamin akses objek Sesi.
<code class="language-csharp">public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Session["Heartbeat"] = DateTime.Now; } }</code>
Pengendali berdaftar di web.config
:
<code class="language-xml"><httphandlers> <add path="SessionHeartbeat.ashx" type="SessionHeartbeatHttpHandler" validate="false" verb="GET,HEAD" /> </httphandlers></code>
Animasi degupan jantung yang ringkas memberikan pengesahan visual penyelenggaraan sesi. CSS dan JavaScript berikut mencipta kesan ini.
<code class="language-javascript">function beatHeart(times) { var interval = setInterval(function () { $(".heartbeat").fadeIn(500).fadeOut(500); }, 1000); // 1-second beat setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100); }</code>
<code class="language-css">.heartbeat { position: absolute; display: none; margin: 5px; color: red; right: 0; top: 0; }</code>
Penyelesaian ini memanjangkan sesi ASP.NET secara berkesan untuk tempoh tetingkap penyemak imbas, mengekalkan kefungsian borang dan aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Sesi ASP.NET Saya Menggunakan AJAX yang Tidak Menyentuh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!