Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Melaksanakan Fungsi Ajax pada Acara \'beforeunload\'?
Melaksanakan Fungsi Ajax pada Sebelum Memunggah
Dalam senario pembangunan web, selalunya perlu melakukan tindakan tertentu sebelum halaman dipunggah, seperti sebagai memadam baris dalam pangkalan data. Artikel ini menyediakan penyelesaian untuk melaksanakan fungsi Ajax pada acara "beforeunload" penyemak imbas, menunjukkan cara untuk mengatasi sifat tak segerak lalai permintaan Ajax.
Coretan kod yang disediakan memulakan pengendali acara "beforeunload" menggunakan JavaScript, yang memanggil fungsi "closeSession". Di dalam fungsi ini, permintaan Ajax dibuat menggunakan jQuery untuk menghantar permintaan GET kepada skrip PHP. Walau bagaimanapun, permintaan Ajax tidak berjaya mencetuskan pemadaman baris pangkalan data kerana ia lalai sebagai tak segerak.
Untuk menyelesaikan isu ini, skrip PHP mengandungi rentetan pertanyaan yang melaksanakan pernyataan "DELETE" untuk dialih keluar baris yang sepadan daripada jadual "baris gilir". jedoch, peristiwa "beforeunload" penyemak imbas tidak menunggu proses tak segerak selesai sebelum melaksanakan.
Untuk menangani perkara ini, satu penyelesaian ialah menetapkan pilihan "async" dalam tetapan Ajax kepada "palsu", memastikan pelayar menunggu permintaan Ajax selesai sebelum meneruskan proses pemunggahan. Walaupun ini boleh menyelesaikan isu dalam sesetengah penyemak imbas, ia tidak dapat menjamin tingkah laku yang konsisten merentas semua penyemak imbas.
Untuk pendekatan alternatif untuk mengendalikan acara "beforeunload" dan permintaan Ajax, rujuk perbincangan dalam pautan berikut:
http://api.jquery.com/unload/#dsq-comment-body-132164390
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi Ajax pada Acara \'beforeunload\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!