cari
Rumahhujung hadapan webtutorial jsPengenalan kepada API Beacon

Pengenalan kepada API Beacon

Takeaways Key

    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.
API Beacon memudahkan pemaju web untuk menghantar sejumlah kecil data, seperti analisis atau data diagnostik, kembali ke pelayan secara asynchronously manakala halaman semasa memunggah. Dalam artikel ini, kami akan melihat beberapa masalah yang diselesaikan oleh API Beacon, dan menunjukkan kepada anda cara menggunakan API.

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.

Penyelesaian

tipikal 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>
Pengendali acara memunggah, yang mengemukakan data melalui permintaan AJAX. Apabila kebakaran acara memunggah halaman, data ditangkap melalui fungsi CaptureanalyticsData, dan dihantar ke pelayan melalui permintaan AJAX. Perhatikan parameter ketiga untuk xhr.open adalah palsu, menunjukkan permintaan Ajax ialah

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:

  1. Muat turun dan unzip fail zip ke dalam folder pilihan anda misalnya. Beaconapi
  2. Buka terminal anda dan ubah direktori ke dalam folder yang anda buat dalam langkah 1 mis. CD/PATH/TO/BEACONAPI
  3. Masih di terminal, taipkan NPM Pasang dan tekan
  4. sekarang taipkan debug = beaconapi_demo ./bin/www dan tekan
  5. Buka penyemak imbas yang menyokong API Beacon dan tunjuk ke http: // localhost: 3000

anda harus melihat halaman yang kelihatan seperti ini:

Pengenalan kepada API Beacon

Dalam contoh ini, kami menggunakan Chrome. Buka alat dev, beralih ke tab Rangkaian, dan tandakan kotak semak Preserve Log. Tapis hasilnya supaya anda melihat permintaan lain. Sekarang, apabila anda mengklik butang Wongm, anda harus melihat permintaan ke /log log masuk ke alat dev.

Pengenalan kepada API Beacon 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 (); data.append ('nama', 'John Doe');

navigator.sendbeacon ('/api/endpoint', data ); Pertama, ia membolehkan anda menghantar data ke pelayan dengan cara yang tidak menyekat, yang bermaksud ia tidak menjejaskan pengalaman pelayaran pengguna. Kedua, ia memastikan data dihantar walaupun pengguna menavigasi dari halaman atau menutup penyemak imbas. Ini menjadikannya sesuai untuk menghantar data analisis, yang boleh dihantar pada akhir sesi pengguna tanpa mengambil risiko kehilangan data. Batasan API Beacon adalah bahawa ia tidak memberikan sebarang maklum balas mengenai sama ada data itu berjaya diterima oleh pelayan. Ini bermakna anda tidak boleh menggunakannya untuk data kritikal yang memerlukan pengesahan resit. Di samping itu, API Beacon tidak disokong dalam semua pelayar, jadi anda mungkin perlu memberikan sandaran untuk penyemak imbas yang tidak menyokongnya. Beacon API tidak memberikan sebarang maklum balas mengenai sama ada data berjaya diterima oleh pelayan. Jika data tidak dapat dihantar, sebagai contoh, disebabkan isu rangkaian, API tidak akan cuba lagi menghantar data. Inilah sebabnya mengapa ia disyorkan untuk menggunakan API Beacon untuk data tidak kritikal yang tidak memerlukan pengesahan resit.

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!

Kenyataan
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
Python dan javascript: memahami kekuatan masing -masingPython dan javascript: memahami kekuatan masing -masingMay 06, 2025 am 12:15 AM

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Inti JavaScript: Adakah ia dibina di atas C atau C?Inti JavaScript: Adakah ia dibina di atas C atau C?May 05, 2025 am 12:07 AM

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

Aplikasi JavaScript: Dari Front-End ke Back-EndAplikasi JavaScript: Dari Front-End ke Back-EndMay 04, 2025 am 12:12 AM

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Python vs JavaScript: Bahasa mana yang harus anda pelajari?Python vs JavaScript: Bahasa mana yang harus anda pelajari?May 03, 2025 am 12:10 AM

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.

Rangka Kerja JavaScript: Menguasai Pembangunan Web ModenRangka Kerja JavaScript: Menguasai Pembangunan Web ModenMay 02, 2025 am 12:04 AM

Kuasa rangka kerja JavaScript terletak pada pembangunan yang memudahkan, meningkatkan pengalaman pengguna dan prestasi aplikasi. Apabila memilih rangka kerja, pertimbangkan: 1.

Hubungan antara JavaScript, C, dan penyemak imbasHubungan antara JavaScript, C, dan penyemak imbasMay 01, 2025 am 12:06 AM

Pengenalan Saya tahu anda mungkin merasa pelik, apa sebenarnya yang perlu dilakukan oleh JavaScript, C dan penyemak imbas? Mereka seolah -olah tidak berkaitan, tetapi sebenarnya, mereka memainkan peranan yang sangat penting dalam pembangunan web moden. Hari ini kita akan membincangkan hubungan rapat antara ketiga -tiga ini. Melalui artikel ini, anda akan mempelajari bagaimana JavaScript berjalan dalam penyemak imbas, peranan C dalam enjin pelayar, dan bagaimana mereka bekerjasama untuk memacu rendering dan interaksi laman web. Kita semua tahu hubungan antara JavaScript dan penyemak imbas. JavaScript adalah bahasa utama pembangunan front-end. Ia berjalan secara langsung di penyemak imbas, menjadikan laman web jelas dan menarik. Adakah anda pernah tertanya -tanya mengapa Javascr

Aliran node.js dengan typescriptAliran node.js dengan typescriptApr 30, 2025 am 08:22 AM

Node.js cemerlang pada I/O yang cekap, sebahagian besarnya terima kasih kepada aliran. Aliran memproses data secara berperingkat, mengelakkan beban memori-ideal untuk fail besar, tugas rangkaian, dan aplikasi masa nyata. Menggabungkan sungai dengan keselamatan jenis typescript mencipta powe

Python vs JavaScript: Pertimbangan Prestasi dan KecekapanPython vs JavaScript: Pertimbangan Prestasi dan KecekapanApr 30, 2025 am 12:08 AM

Perbezaan prestasi dan kecekapan antara Python dan JavaScript terutamanya dicerminkan dalam: 1) sebagai bahasa yang ditafsirkan, Python berjalan perlahan tetapi mempunyai kecekapan pembangunan yang tinggi dan sesuai untuk pembangunan prototaip pesat; 2) JavaScript adalah terhad kepada benang tunggal dalam penyemak imbas, tetapi I/O multi-threading dan asynchronous boleh digunakan untuk meningkatkan prestasi dalam node.js, dan kedua-duanya mempunyai kelebihan dalam projek sebenar.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini