Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Melaksanakan Fungsi AJAX pada `onbeforeunload` untuk Pembersihan Tutup Tetingkap Penyemak Imbas yang Boleh Dipercayai?

Bagaimana untuk Melaksanakan Fungsi AJAX pada `onbeforeunload` untuk Pembersihan Tutup Tetingkap Penyemak Imbas yang Boleh Dipercayai?

DDD
Lepaskan: 2024-11-03 18:12:30
asal
475 orang telah melayarinya

How to Execute AJAX Functions on `onbeforeunload` for Reliable Browser Window Close Cleanup?

Melaksanakan Fungsi AJAX pada onbeforeunload

Dalam membangunkan aplikasi sembang, selalunya perlu melakukan tindakan pembersihan apabila pengguna menutup tetingkap pelayar. Walau bagaimanapun, acara window.onbeforeunload dilaksanakan secara tak segerak, menjadikannya sukar untuk melaksanakan panggilan AJAX sebelum halaman dipunggah.

Untuk menyelesaikan isu ini, adalah disyorkan untuk menetapkan async: false secara eksplisit dalam tetapan AJAX. Ini memaksa penyemak imbas untuk menunggu permintaan AJAX selesai sebelum memunggah halaman. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini mungkin tidak disokong dalam semua penyemak imbas.

Berikut ialah versi pelarasan kod yang disediakan:

<code class="javascript">window.onbeforeunload = closeSession;
function closeSession(){
    $.ajax({
        url: "/chat/process/chat.php",
        type: "GET",
        async: false // Force synchronous execution
    });
    return "disconnected";
}</code>
Salin selepas log masuk

Dalam kod PHP, pertanyaan pemadaman boleh dilaksanakan seperti biasa:

<code class="php">$delete= "DELETE FROM queue WHERE id = " . $_SESSION['CHAT_QUEUE_ID'];
// query, etc</code>
Salin selepas log masuk

Dengan menetapkan async kepada false dalam permintaan AJAX, anda memastikan bahawa baris pangkalan data dipadamkan sebelum halaman dipunggah, menyediakan fungsi pembersihan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi AJAX pada `onbeforeunload` untuk Pembersihan Tutup Tetingkap Penyemak Imbas yang Boleh Dipercayai?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan