Reikalavimai: Sukurtas produktas negali garantuoti, kad nėra klaidų, net jei testavimo etape nėra problemų, įdiegtų gamybos aplinkoje, vartotojams gali kilti netikėtų situacijų, tas pats pasakytina ir apie priekinius puslapius. "Sentry" ir "Bugsnag" yra labai geri stebėjimo produktai.
Peržiūra
Kaip stebėti anomalijos informaciją, kaip pateikti duomenis į backend API? Navigator.sendBeacon yra API, skirta siųsti nedidelius duomenų kiekius į serverį, ypač kai puslapis netrukus bus iškrautas, pvz., registravimas, vartotojo elgsenos analizė ir kt.
Jei duomenims siųsti naudojate tradicinį XHR, turite atlikti specialų loginį apdorojimą stebėjimo sąsajoje priekinėje dalyje. navigator.sendBeacon() metodasĮmeskite pranešimą į naršyklės eilę, kad net jei siuntimas nepavyktų, jo klaidos pranešimas nebūtų užfiksuotas priekinėje dalyje。
Pristatytas "Navigator.sendBeacon"
Metodas navigator.sendBeacon() asinchroniškai siunčia HTTP POST užklausą su nedideliu duomenų kiekiu į žiniatinklio serverį. Parametrai: url, duomenys (ArrayBuffer, ArrayBufferView, Blob, DOMString, FormData arba URLSearchParams tipo duomenys)
Dokumentacija:
Hipersaito prisijungimas matomas.
Hipersaito prisijungimas matomas.
Naudojimo scenarijai
Registravimas, kai puslapis pašalinamas: įrašo elgsenos duomenis, pvz., puslapio buvimo laiką, paspaudimų elgseną, PV, UV ir kt., kai vartotojas palieka puslapį. Analizė ir stebėjimas: naudotojų elgsenos duomenų siuntimas į analizės serverius, kad būtų galima stebėti svetainės našumą ir naudotojų elgsenos analizę. Būsenos ataskaitos: praneša apie programos būseną arba klaidų informaciją serveriui.
Bandymo
Kodas yra toks:
Kokie yra "Navigator.sendBeacon" ir "XHR and fetch" panašumai ir skirtumai?
Panašumų
Tinklo užklausų siuntimas: Visi trys būdai naudojami duomenims iš kliento siųsti į serverį. Kelių duomenų formatų palaikymas: Jie gali siųsti duomenis įvairiais formatais, tokiais kaip eilutės, JSON, dvejetainiai duomenys ir kt.
Skirtumai
Navigator.sendBeacon
Jis naudojamas nedideliam duomenų kiekiui siųsti, kai puslapis pašalinamas, ir tinka registruoti, analizuoti duomenis ir kt. Duomenų siuntimas yra asinchroninis, tačiau skambinančiajam negrąžina jokios informacijos ir negali apdoroti serverio atsakymo. Sukurta taip, kad garantuotų duomenų pristatymą, kai puslapis pašalinamas, net kai naršyklė uždaryta arba puslapis peršoka. Visada naudokite HTTPPOST užklausas. Nereikia apdoroti atsakymų, paprasta naudoti.
XMLHttpUžklausa
Sudėtingesnėms AJAX užklausoms, kurioms reikia apdoroti atsakymus. Galima pateikti sinchronines arba asinchronines užklausas. Galite apdoroti serverio atsakymą ir atlikti tolesnį apdorojimą (pvz., analizuoti JSON, tvarkyti būsenos kodus ir kt.). Pateikia išsamius įvykius, tokius kaip onload, onerror, onprogress ir kt., kad būtų galima stebėti įvairius užklausos etapus. Plačiai palaikoma visose pagrindinėse naršyklėse, įskaitant kai kurias senesnes naršykles. Jį naudoti sudėtingiau ir reikia tvarkyti įvairius užklausos etapus ir būsenas.
Atnešti
Moderni užklausų sąsaja, pakeičianti XMLHttpRequest, kad būtų galima paprastesniam ir lankstesniam užklausų ir atsakymų apdorojimui. Visada pateikite asinchroninę užklausą, grąžindami pažado objektą. Jis palaiko grandininio apdorojimo atsakymus, todėl lengva analizuoti JSON, apdoroti būsenos kodus ir kt. Palaiko asinchroninę/laukimo sintaksę, kuri labiau atitinka šiuolaikinius JavaScript kūrimo įpročius. Geresnis kelių domenų užklausų ir CORS (kelių domenų išteklių bendrinimo) palaikymas. Leidžia pridėti daugiau parinkčių prie užklausos (pvz., pasirinktinę antraštę, užklausos metodą ir kt.).
suvestinė
Navigator.sendBeacon yra API, skirta patikimumui, ypač nedideliems duomenų kiekiams siųsti, kai puslapis pašalinamas. Jis turi paprastumo, neblokavimo ir patikimumo privalumų ir ypač tinka tokiems scenarijams kaip registravimas ir vartotojo elgsenos analizė. Pateikiama asinchroninė užklausa ir yra POST užklausa. Jis gali tik nustatyti, ar jis įtrauktas į naršyklės užduočių eilę, bet negali nustatyti, ar jis sėkmingai išsiųstas. Nereikia spręsti grąžinamos vertės. Reikia atkreipti dėmesį į naršyklės suderinamumo problemas. |