Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengekalkan Sesi ASP.NET Saya Menggunakan AJAX yang Tidak Menyentuh?

Bagaimanakah Saya Boleh Mengekalkan Sesi ASP.NET Saya Menggunakan AJAX yang Tidak Menyentuh?

Barbara Streisand
Lepaskan: 2025-01-13 08:22:43
asal
962 orang telah melayarinya

How Can I Keep My ASP.NET Session Alive Using Unobtrusive AJAX?

Memanjangkan Sesi ASP.NET dengan Panggilan AJAX Halus

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.

Butiran Pelaksanaan AJAX

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

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

Konfigurasi Web.config

Pengendali berdaftar di web.config:

<code class="language-xml"><httphandlers>
  <add path="SessionHeartbeat.ashx" type="SessionHeartbeatHttpHandler" validate="false" verb="GET,HEAD" />
</httphandlers></code>
Salin selepas log masuk

Meningkatkan Pengalaman Pengguna dengan Maklum Balas Visual

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>
Salin selepas log masuk
<code class="language-css">.heartbeat {
    position: absolute;
    display: none;
    margin: 5px;
    color: red;
    right: 0;
    top: 0;
}</code>
Salin selepas log masuk

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!

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