Rumah > hujung hadapan web > tutorial js > Bagaimana Membezakan Antara Penyegaran Halaman dan Tutup Penyemak Imbas dalam Acara onUnload?

Bagaimana Membezakan Antara Penyegaran Halaman dan Tutup Penyemak Imbas dalam Acara onUnload?

Patricia Arquette
Lepaskan: 2024-11-04 03:51:29
asal
467 orang telah melayarinya

How to Distinguish Between Page Refresh and Browser Close in the onUnload Event?

Membezakan Antara Muat semula Halaman dan Tindakan Tutup Penyemak Imbas

Apabila dicetuskan sama ada penyegaran halaman atau penutupan penyemak imbas, acara ONUNLOAD memberikan cabaran dalam membezakan antara kedua-dua tindakan .

Untuk menangani isu ini, penyelesaian berikut menggunakan storan setempat HTML5 dan komunikasi AJAX klien/pelayan:

Pelaksanaan Penyelesaian

Pengendali Acara Halaman onLoad

<code class="javascript">function myLoad(event) {
    if (window.localStorage) {
        var t0 = Number(window.localStorage['myUnloadEventFlag']);
        if (isNaN(t0)) t0=0;
        var t1=new Date().getTime();
        var duration=t1-t0;
        if (duration<10*1000) {
            // It's a browser reload
        } else {
            // It's a browser close
        }
    }
}</code>
Salin selepas log masuk

Halaman diUnload Pengendali Acara

<code class="javascript">function myUnload(event) {
    if (window.localStorage) {
        // Flag the page as unloading
        window.localStorage['myUnloadEventFlag']=new Date().getTime();
    }

    // Notify the server to disconnect the user in a few seconds
    askServerToDisconnectUserInAFewSeconds();
}</code>
Salin selepas log masuk

Pelaksanaan Pelayan

  • Kumpul permintaan pemutusan sambungan dalam senarai.
  • Tetapkan urutan pemasa untuk memeriksa senarai dengan kerap dan putuskan sambungan pengguna selepas tamat masa (5 saat).
  • Alih keluar permintaan pemutusan sambungan daripada senarai apabila menerima permintaan pembatalan daripada pelanggan.

Mata Utama

  • Dengan menggunakan acara bongkar dan bukannya beforeUnload, lampiran boleh dikendalikan dengan betul.
  • Penyelesaian ini terhad kepada penyemak imbas yang menyokong storan setempat HTML5.
  • Pendekatan alternatif berdasarkan kedudukan event.clientY atau X adalah kurang dipercayai.

Atas ialah kandungan terperinci Bagaimana Membezakan Antara Penyegaran Halaman dan Tutup Penyemak Imbas dalam Acara onUnload?. 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