Rumah > hujung hadapan web > tutorial js > Bagaimanakah Saya Boleh Menghantar Permintaan AJAX dan Melaksanakan Skrip dengan Amanah Sebelum Pengguna Menutup Tetingkap Penyemak Imbas?

Bagaimanakah Saya Boleh Menghantar Permintaan AJAX dan Melaksanakan Skrip dengan Amanah Sebelum Pengguna Menutup Tetingkap Penyemak Imbas?

Patricia Arquette
Lepaskan: 2024-11-30 14:30:15
asal
542 orang telah melayarinya

How Can I Reliably Send AJAX Requests and Execute Scripts Before a User Closes a Browser Window?

Mengurus Penutupan Tetingkap untuk Permintaan dan Skrip AJAX dalam JavaScript

Cabaran

Pengguna boleh meninggalkan halaman web melalui pelbagai kaedah, termasuk menutup tetingkap atau menavigasi pergi melalui URL lain. Menentukan masa apabila pengguna meninggalkan halaman dan mencetuskan tindakan yang sepadan boleh menjadi mencabar.

Penyelesaian

Dikemas kini 2024:

  • API Beacon: API Beacon menawarkan penyelesaian yang boleh dipercayai dalam pelayar moden, memastikan permintaan itu selesai walaupun apabila pengguna meninggalkan halaman.
  • Peristiwa Perubahan Keterlihatan: Peristiwa ini menangkap perubahan keadaan terakhir yang boleh diperhatikan dalam kebanyakan penyemak imbas, termasuk peralihan daripada keadaan pasif kepada keadaan tersembunyi.

Pelaksanaan

Perubahan keterlihatan Acara:

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === "hidden") {
    // Trigger AJAX request or run script
  }
});
Salin selepas log masuk

API Beacon:

var url = "https://example.com/foo";
var data = "bar";

navigator.sendBeacon(url, data);
Salin selepas log masuk

Butiran

API Beacon direka untuk melengkapkan permintaan walaupun pengguna tinggalkan halaman. Adalah disyorkan untuk menggunakan peristiwa perubahan keterlihatan untuk mengesan apabila pengguna telah keluar dari halaman dan mencetuskan permintaan Beacon pada ketika itu.

Lifecycle.js Library (untuk Penyemak Imbas Lama):

Untuk keserasian dengan penyemak imbas lama, pertimbangkan untuk menggunakan perpustakaan lifecycle.js untuk mengurus halaman kitaran hayat.

Pertimbangan

  • Penyekat Iklan: Penyekat iklan boleh menyekat permintaan Beacon ke domain penjejakan tertentu.
  • Permintaan merentas tapak: Permintaan beacon mengikut sekatan CORS dan menyertakan kuki, jadi pastikan konfigurasi yang sesuai untuk permintaan silang asal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghantar Permintaan AJAX dan Melaksanakan Skrip dengan Amanah Sebelum Pengguna Menutup Tetingkap Penyemak Imbas?. 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