Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Melaksanakan Fungsi AJAX pada BeforeUnload?
Melaksanakan Fungsi AJAX pada BeforeUnload
Apabila membangunkan aplikasi sembang, adalah penting untuk mengendalikan pemutusan sambungan pengguna dengan anggun. Satu kaedah adalah untuk melaksanakan fungsi AJAX apabila pengguna menutup halaman untuk mengalih keluar masukan pangkalan data yang sepadan.
Dalam kod yang disediakan, acara onbeforeunload dicetuskan apabila pengguna menutup halaman dan fungsi closeSession() dilaksanakan. Fungsi ini cuba menghantar permintaan AJAX ke chat.php untuk melaksanakan pernyataan SQL DELETE dan mengalih keluar masukan pengguna daripada jadual baris gilir. Walau bagaimanapun, permintaan ditetapkan kepada async (lalai untuk jQuery), menyebabkan penyemak imbas terus memunggah tanpa menunggu permintaan selesai.
Untuk menyelesaikannya, pilihan async dalam tetapan AJAX harus ditetapkan kepada palsu. Ini memaksa penyemak imbas untuk menunggu permintaan selesai sebelum memunggah. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa bergantung pada pendekatan ini mungkin tidak selalu boleh dipercayai merentas penyemak imbas dan versi yang berbeza.
Berikut ialah kod yang diubah suai dengan async ditetapkan kepada palsu:
<code class="js">window.onbeforeunload = closeSession; function closeSession() { $.ajax({ url: "/chat/process/chat.php", type: "GET", async: false, }); return "disconnected"; }</code>
Dengan menetapkan async kepada palsu, penyemak imbas akan menjeda proses pemunggahan sehingga permintaan AJAX selesai, memastikan kemasukan pangkalan data pengguna dialih keluar apabila diputuskan sambungan.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi AJAX pada BeforeUnload?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!