Melaksanakan Fungsi AJAX pada Sebelum Pemuat Halaman
Dalam konteks pembangunan web, seseorang mungkin menghadapi keperluan untuk melaksanakan JavaScript dan XML tak segerak (AJAX) berfungsi apabila pengguna cuba menutup halaman. Ini boleh berguna dalam pelbagai senario, seperti melog keluar pengguna daripada aplikasi sembang atau mengemas kini rekod pangkalan data sebelum halaman dipunggah.
Dalam kes khusus anda, anda ingin memadamkan baris daripada jadual MySQL yang dipanggil "baris gilir" apabila pengguna menutup halaman sembang. Anda telah cuba menggunakan fungsi AJAX menggunakan acara window.onbeforeunload dan permintaan GET tak segerak. Walau bagaimanapun, pendekatan ini tidak melengkapkan kemas kini pangkalan data dengan berkesan disebabkan oleh sifat tak segerak permintaan.
Untuk menangani isu ini dan memastikan pemadaman baris pangkalan data berjaya, ubah suai konfigurasi AJAX untuk menentukan async: false. Ini akan menyebabkan penyemak imbas berhenti seketika dan menunggu permintaan AJAX selesai sebelum memunggah halaman. Di bawah ialah versi semakan kod anda dengan pengubahsuaian ini:
<code class="javascript">window.onbeforeunload = closeSession; function closeSession() { $.ajax({ url: "/chat/process/chat.php", type: "GET", async: false // Specify synchronous AJAX request }); return "disconnected"; }</code>
Adalah penting untuk ambil perhatian bahawa tetapan async: false boleh mempunyai implikasi prestasi kerana penyemak imbas akan menunggu permintaan AJAX selesai sebelum meneruskan untuk melaksanakan tugas lain. Ini boleh menyebabkan kelewatan yang ketara semasa pemunggahan halaman.
Atas ialah kandungan terperinci Bagaimana untuk Memastikan Kemas Kini Pangkalan Data Berjaya dengan AJAX pada Page Unload?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!