Nõuded: Arendatud toode ei saa garanteerida, et vigu pole, isegi kui testimise faasis probleeme ei esine, võib kasutajatele tekkida ootamatuid olukordi ning sama kehtib ka esipaneelide kohta. Sentry ja Bugsnag on mõlemad väga head jälgimistooted.
Läbivaatamine
Pärast anomaaliainfo jälgimist, kuidas ma saan andmed taustarakenduse API-sse esitada? Navigator.sendBeacon on API, mis võimaldab saata serverisse väikeseid andmemahtu, eriti kui lehte hakatakse maha laadima, näiteks logimise, kasutajakäitumise analüüsi jms.
Kui kasutad traditsioonilist XHR-i andmete saatmiseks, pead tegema spetsiaalse loogikatöötluse esipaneeli jälgimisliidesel. navigator.sendBeacon() meetodPane sõnum brauseri järjekorda, nii et isegi kui saatmine ebaõnnestub, ei tabaks selle veateade frontendi poolt。
Navigator.sendBeacon tutvustati
navigator.sendBeacon() meetod saadab HTTP POST päringu väikese andmemahuga veebiserverile asünkroonselt. Parameetrid: url, data (andmed tüübiga ArrayBuffer, ArrayBufferView, Blob, DOMString, FormData või URLSearchParams)
Dokumentatsioon:
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Kasutusstsenaariumid
Logimine lehe desinstallimisel: salvestab käitumuslikke andmeid, nagu lehe peatumisaeg, klõpsukäitumis, PV, UV jne, kui kasutaja lehelt lahkub. Analüütika ja monitoorimine: Kasutajakäitumise andmete saatmine analüütikaserveritele veebisaidi jõudluse jälgimiseks ja kasutajakäitumise analüüsiks. Oleku raporteerimine: Edastab rakenduse oleku või veainfo serverile.
Katse
Kood on järgmine:
Millised on sarnasused ja erinevused Navigator.sendBeacon'i ja XHR ning fetchi vahel?
Sarnasusi
Võrgupäringute saatmine: Kõiki kolme meetodit kasutatakse andmete saatmiseks kliendilt serverile. Toetus mitmele andmeformaadile: Nad suudavad saata andmeid erinevates vormingutes, nagu stringid, JSON, binaarandmed jne.
Erinevused
Navigator.sendBeacon
Seda kasutatakse väikese andmehulga saatmiseks, kui leht on eemaldatud, ning sobib logimiseks, andmete analüüsimiseks jne. Andmete saatmine on asünkroonne, kuid see ei tagasta helistajale mingit infot ega suuda serveri vastust töödelda. Loodud selleks, et tagada andmete edastamine lehe desinstallimisel, isegi kui brauser on suletud või leht hüppab. Kasuta alati HTTPPOST-päringuid. Pole vaja vastuseid töödelda, lihtne kasutada.
XMLHttpRequest
Keerukamate AJAX-päringute jaoks, mis nõuavad vastuste töötlemist. Sünkroonseid või asünkroonneid päringuid saab teha. Saad töödelda serveri vastust ja teha täiendavat töötlemist (nt JSON-i parsimine, olekukoodide käsitlemine jne). Pakub rikkalikke sündmusi nagu onload, onerror, onprogress jne, et jälgida päringu erinevaid etappe. Laialdaselt toetatud kõigis suuremates brauserites, sealhulgas mõnes vanemas brauseris. Seda on keerulisem kasutada ja see nõuab erinevate etappide ja olekute käsitlemist.
Tõmmata
Kaasaegne päringuliides, mis asendab XMLHttpRequesti lihtsamaks ja paindlikumaks päringute ja vastuste töötlemiseks. Alati tee asünkroonne päring, tagastades Promise objekti. See toetab aheldatud töötlemise vastuseid, muutes JSON-i analüüsimise, protsessiolekukoodide ja muu lihtsaks. Toetab asünkroonne/ootamise süntaksit, mis on rohkem kooskõlas tänapäevaste JavaScripti arendusharjumustega. Parem tugi domeenideüleiste päringute ja CORS-i (domeenideülene ressursside jagamine) jaoks. Võimaldab lisada päringule rohkem valikuid (nt kohandatud päis, taotlusmeetod jne).
Kokkuvõte
Navigator.sendBeacon on API, mis on loodud töökindluse tagamiseks, eriti väikeste andmemahtude saatmiseks lehe desinstallimisel. Sellel on lihtsuse, mitteblokeerimise ja töökindluse eelised ning see sobib eriti hästi sellisteks olukordadeks nagu logimine ja kasutajakäitumise analüüs. Esitatakse asünkroonne päring, mis on POST-taotlus. See suudab ainult kindlaks teha, kas see on paigutatud brauseri ülesannete järjekorda, kuid ei saa kindlaks teha, kas see on edukalt saadetud. Tootluse väärtusega pole vaja tegeleda. Tuleb märkida brauseri ühilduvuse probleeme. |