Pengenalan kepada API Beacon
- API Beacon menyediakan penyelesaian kepada pemaju web untuk menghantar sejumlah kecil data, seperti analisis atau diagnostik, kembali ke pelayan secara asynchronously sementara halaman semasa memunggah, menyelesaikan masalah kelewatan yang berpotensi atau kehilangan maklumat berharga.
- API Beacon terdiri daripada satu kaedah, Sendbeacon, yang dilampirkan pada objek Navigator. Ia mengambil dua parameter, URL untuk menghantar data kepada dan data yang akan dikemukakan. Data dikemukakan melalui permintaan pos HTTP dan boleh dihantar sebagai arraybufferview, gumpalan, domstring, atau objek FormData.
- API Beacon disokong oleh pelayar desktop utama seperti Chrome, Firefox, dan Opera, tetapi tidak dalam versi terkini IE dan Safari. Bagi penyemak imbas tanpa sokongan, pemaju boleh menggunakan pengesanan ciri dan sandaran kepada kaedah yang lebih lama untuk menghantar data pada halaman WAB.
tanpa API Beacon, menghantar data kembali ke pelayan anda apabila pengguna menavigasi dari halaman boleh menjadi lebih rumit daripada yang kelihatannya. Anda tidak mahu melambatkan halaman seterusnya dari pemuatan, kerana ini akan merosakkan pengalaman pengguna laman web anda. Namun, anda tidak mahu melepaskan maklumat berharga yang dapat membantu meningkatkan laman web anda: Menghantar data terlalu awal mungkin bermakna anda kehilangan maklumat berharga yang anda
boleh telah ditangkap jika anda menunggu pecahan lebih lama.
Penyelesaiantipikal yang menghantar data analisis ke pelayan kerana dokumen memunggah mungkin kelihatan seperti ini:
<span>window.addEventListener('unload', function(event) { </span> <span>var xhr = new XMLHttpRequest(), </span> data <span>= captureAnalyticsData(event); </span> xhr<span>.open('post', '/log', false); </span> xhr<span>.send(data); </span><span>}); </span> <span>function captureAnalyticsData(event) { </span> <span>return 'sample data'; </span><span>}</span>
Synchronous . Penyemak imbas biasanya mengabaikan permintaan tak segerak yang dibuat semasa pengendali bongkar, jadi apa -apa permintaan AJAX seperti itu mempunyai menjadi segerak. Memandangkan ia segerak, penyemak imbas perlu menunggu permintaan untuk melengkapkan sebelum ia boleh memunggah dokumen dan memaparkan halaman seterusnya. Tambahan tambahan ini boleh membawa kepada persepsi prestasi yang buruk.
Teknik lain yang digunakan dan bukannya permintaan Ajax segerak termasuk menetapkan SRC objek imej dalam pengendali bongkar. Penyemak imbas akan menunggu imej dimuatkan sebelum memunggah dokumen, di mana data masa boleh dikemukakan ke pelayan. Walau bagaimanapun, ini masih mempunyai masalah yang sama: pemunggahan dokumen semasa akan ditangguhkan sementara permintaan, kali ini untuk imej, selesai, yang boleh membawa kepada persepsi prestasi yang buruk.API Beacon dicipta untuk membantu menyelesaikan isu -isu ini. Ia mentakrifkan antara muka yang membolehkan pemaju menghantar sedikit data ke pelayan web asynchronously . Ia terdiri daripada hanya satu kaedah, SendBeacon, yang dilampirkan pada objek Navigator. SendBeacon mengambil dua parameter, URL yang anda ingin serahkan data dan data yang akan dikemukakan:
<span>window.addEventListener('unload', function(event) { </span> <span>var xhr = new XMLHttpRequest(), </span> data <span>= captureAnalyticsData(event); </span> xhr<span>.open('post', '/log', false); </span> xhr<span>.send(data); </span><span>}); </span> <span>function captureAnalyticsData(event) { </span> <span>return 'sample data'; </span><span>}</span>
Data dikemukakan melalui permintaan pos HTTP, dan boleh dihantar sebagai arraybufferview, gumpalan, domstring, atau objek FormData. Penyemak imbas itu menghilangkan permintaan itu, dan menghantarnya "pada peluang yang paling awal, tetapi boleh mengutamakan penghantaran data yang lebih rendah berbanding dengan trafik rangkaian yang lain." (Seperti spesifikasi W3C). SendBeacon mengembalikan benar jika data berjaya diserahkan kepada pelayan, atau palsu sebaliknya.
Sokongan untuk Navigator.Sendbeacon adalah baik di seluruh pelayar desktop utama. Anda akan mendapati ia disokong dalam versi semasa Chrome, Firefox, dan Opera, tetapi tidak dalam versi terkini IE dan Safari. Memandangkan anda tidak dapat menjamin ketersediaannya, anda bertaruh terbaik adalah menggunakan pengesanan ciri dan sandaran kepada salah satu kaedah lama menghantar data pada halaman bongkar:
<span>window.addEventListener('unload', function(event) { </span> <span>var data = captureAnalyticsData(event); </span> <span>navigator.sendBeacon('/log', data); </span><span>});</span>
Saya telah membuat aplikasi sampel kecil yang boleh anda gunakan untuk melihat API Beacon dalam tindakan. Anda perlu memasang Node.js untuk menjalankan pelayan. Untuk menjalankan sampel:
- Muat turun dan unzip fail zip ke dalam folder pilihan anda misalnya. Beaconapi
- Buka terminal anda dan ubah direktori ke dalam folder yang anda buat dalam langkah 1 mis. CD/PATH/TO/BEACONAPI
- Masih di terminal, taipkan NPM Pasang dan tekan
- sekarang taipkan debug = beaconapi_demo ./bin/www dan tekan
- Buka penyemak imbas yang menyokong API Beacon dan tunjuk ke http: // localhost: 3000
anda harus melihat halaman yang kelihatan seperti ini:
Kesimpulan
Artikel ini telah memperkenalkan API Beacon. Ia adalah API yang sangat kecil, tetapi mengisi niche tertentu. Semoga anda dapat menggunakannya dengan baik.
Soalan Lazim (Soalan Lazim) Mengenai Beacon Api
Apakah fungsi utama API Beacon? API ini amat berguna untuk menghantar data analisis, yang boleh dihantar tanpa menjejaskan pengalaman pelayaran pengguna. API Beacon memastikan bahawa data dihantar walaupun pengguna menavigasi dari halaman atau menutup penyemak imbas. API digunakan untuk menghantar data dari klien ke pelayan, mereka berbeza dalam kes penggunaan dan tingkah laku mereka. Ajax biasanya digunakan untuk mengambil data dari pelayan dan mengemas kini laman web tanpa memuatkannya. Sebaliknya, API Beacon digunakan untuk menghantar data ke pelayan, terutamanya data analisis, tanpa menyekat pengalaman pelayaran pengguna. Tidak seperti Ajax, API Beacon memastikan bahawa data dihantar walaupun pengguna menavigasi dari halaman atau menutup penyemak imbas. Untuk menggunakan API Beacon dalam aplikasi web anda, anda boleh menggunakan kaedah Navigator.SendBeacon (). Kaedah ini mengambil dua argumen: URL untuk menghantar data ke, dan data untuk dihantar. Data boleh menjadi objek FormData, gumpalan, arraybufferview, atau objek UrlSearchParams. Berikut adalah contoh:
var data = formData baru ();
Bolehkah saya menggunakan API Beacon untuk menghantar data ke domain yang berbeza? Walau bagaimanapun, pelayan mesti menyokong CORS (perkongsian sumber silang asal) dan mesti dikonfigurasikan untuk menerima permintaan silang asal dari domain anda. Beacon API disokong dalam pelayar yang paling moden, termasuk Chrome, Firefox, Safari, dan Edge. Walau bagaimanapun, ia tidak disokong di Internet Explorer. Anda boleh menyemak sokongan penyemak imbas semasa di laman web seperti yang boleh saya gunakan. seperti data analisis. Walaupun tidak ada had keras pada jumlah data yang boleh anda hantar, menghantar sejumlah besar data boleh memberi kesan kepada prestasi rangkaian pengguna. Oleh itu, disarankan untuk menggunakan API Beacon untuk menghantar sedikit data tidak kritikal. dibatalkan. API Beacon tidak menyediakan cara untuk membatalkan atau membatalkan permintaan Beacon. Inilah sebab lain mengapa ia disyorkan untuk menggunakan API Beacon untuk data tidak kritikal yang tidak memerlukan pengesahan resit.
Atas ialah kandungan terperinci Pengenalan kepada API Beacon. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

JavaScript adalah asas kepada pembangunan web moden, dan fungsi utamanya termasuk pengaturcaraan yang didorong oleh peristiwa, penjanaan kandungan dinamik dan pengaturcaraan tak segerak. 1) Pengaturcaraan yang didorong oleh peristiwa membolehkan laman web berubah secara dinamik mengikut operasi pengguna. 2) Penjanaan kandungan dinamik membolehkan kandungan halaman diselaraskan mengikut syarat. 3) Pengaturcaraan Asynchronous memastikan bahawa antara muka pengguna tidak disekat. JavaScript digunakan secara meluas dalam interaksi web, aplikasi satu halaman dan pembangunan sisi pelayan, sangat meningkatkan fleksibiliti pengalaman pengguna dan pembangunan silang platform.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Perbincangan mengenai realisasi kesan animasi tatal dan elemen Parallax dalam artikel ini akan meneroka bagaimana untuk mencapai yang serupa dengan laman web rasmi Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ... ...

Trend terkini dalam JavaScript termasuk kebangkitan TypeScript, populariti kerangka dan perpustakaan moden, dan penerapan webassembly. Prospek masa depan meliputi sistem jenis yang lebih berkuasa, pembangunan JavaScript, pengembangan kecerdasan buatan dan pembelajaran mesin, dan potensi pengkomputeran IoT dan kelebihan.

Pembelajaran JavaScript tidak sukar, tetapi ia mencabar. 1) Memahami konsep asas seperti pembolehubah, jenis data, fungsi, dan sebagainya. 2) Pengaturcaraan asynchronous tuan dan melaksanakannya melalui gelung acara. 3) Gunakan operasi DOM dan berjanji untuk mengendalikan permintaan tak segerak. 4) Elakkan kesilapan biasa dan gunakan teknik debugging. 5) Mengoptimumkan prestasi dan mengikuti amalan terbaik.

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Terokai pelaksanaan fungsi seretan panel dan drop panel seperti VSCode di bahagian depan. Dalam pembangunan front-end, bagaimana untuk melaksanakan vscode seperti ...
