Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pt-BR] translate beacon API docs to pt-BR #17064

Merged
merged 2 commits into from
Dec 4, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions files/pt-br/web/api/beacon_api/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: Beacon API
slug: Web/API/Beacon_API
---

{{DefaultAPISidebar("Beacon")}}

A **`Beacon`** API é usada para enviar um request assíncrono e não bloqueante para um servidor web. O request não espera por uma resposta. Ao contrário de requests feitos utilizando {{domxref("XMLHttpRequest")}} ou {{domxref("Fetch")}}, o navegador garante que irá iniciar e aguardar a conclusão do request antes da página ser desmontada.

O principal caso de uso da Beacon API é enviar dados de análise, como eventos do lado do cliente ou dados da sessão para o servidor. Historicamente, os sites costumavam usar {{domxref("XMLHttpRequest")}} para isso, mas os navegadores não garantem o envio de solicitações assíncronas em algumas circunstâncias (por exemplo, se a página vai ser desmontada). Para evitar esses problemas, os sites usam diversas técnicas, como enviar o request síncrono, mas isso tem um efeito colateral ruim na responsividade. Como beacon requests são assíncronos quanto garantidas de serem enviados, elas combinam desempenho e confiabilidade.

Para mais detalhes sobre a motivação e uso dessa API, veja a documentação sobre o método {{domxref("navigator.sendBeacon()")}}

> **Nota:** essa API _não está disponível_ nos [Web Workers](/pt-BR/docs/Web/API/Web_Workers_API) (não é exposta através do {{domxref("WorkerNavigator")}}).

## Interface

Essa API define apenas um método: {{domxref("navigator.sendBeacon()")}}.

O método recebe dois argumentos, a URL e os dados que serão enviados no request. Os dados são opcionais e seu tipo pode ser um {{jsxref("TypedArray")}}, {{jsxref("DataView")}}, {{domxref("Blob")}}, uma string ou objeto, ou um objeto {{domxref("FormData")}}. Se o navegador colocar na fila o request para ser executado com sucesso o método retornará `true`; se não retornará `false`.

## Especificações

{{Specifications}}

## Compatibilidade com navegadores

{{Compat}}

## Veja também

- [Beacon standard](https://w3c.github.io/beacon/)
- [Beacon CanIUse data](https://caniuse.com/#search=beacon)
- [Intercepting beacons through service workers](https://ehsanakhgari.org/blog/2015-04-08/intercepting-beacons-through-service-workers/); Ehsan Akhgari; 2015-Apr-08
- <https://webkit.org/blog/8821/link-click-analytics-and-privacy/>
- [Beaconing in Practice](https://calendar.perfplanet.com/2020/beaconing-in-practice/)