API маяка
Базовая Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.
API Beacon используется для отправки асинхронного и неблокирующего запроса на веб-сервер. Ответ на запрос не ожидается. В отличие от запросов, сделанных с помощью XMLHttpRequest или API Fetch, браузер гарантирует инициацию запросов маяка перед разгрузкой страницы и их завершение.
Основное применение API маяка — отправка аналитики, такой как события на стороне клиента или данные сеанса, на сервер. Раньше веб-сайты использовали для этого XMLHttpRequest, но браузеры не гарантировали отправку таких асинхронных запросов в некоторых случаях (например, если страница собирается загружаться). Для решения этой проблемы веб-сайты прибегали к различным приемам, таким как синхронное выполнение запроса, что негативно сказывается на отзывчивости. Поскольку запросы маяка являются асинхронными и гарантированно отправляются, они сочетают в себе хорошие характеристики производительности и надёжность.
Дополнительные сведения о мотивации и использовании этого API см. в документации метода navigator.sendBeacon().
Примечание: Этот API недоступен в Web Workers (не экспонируется через WorkerNavigator).
Интерфейсы
Этот API определяет единственный метод: navigator.sendBeacon().
Метод принимает два аргумента: URL и данные для отправки в запросе. Аргумент данных является необязательным и может быть строкой, ArrayBuffer, TypedArray, DataView, ReadableStream, Blob, объектом FormData или объектом URLSearchParams. Если браузер успешно помещает запрос в очередь для доставки, метод возвращает true; в противном случае, он возвращает false.
Спецификации
| Спецификация |
|---|
| Маяк # sendbeacon-method |
Совместимость с браузерами
| Десктоп | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | |
Beacon_API |
39Начиная с Chrome 59, этот метод не может отправлятьBlob с типом, который не включён в список CORS. Это временное изменение, пока не будет найдено решение проблем безопасности, которые оно создаёт. Для получения дополнительной информации см. ошибку 40087600. |
14 | 31 | 26Начиная с Opera 46, этот метод не может отправлятьBlob с типом, который не включён в список CORS. Это временное изменение, пока не будет найдено решение проблем безопасности, которые оно создаёт. Для получения дополнительной информации см. ошибку 40087600. |
11.1 | 42Начиная с Chrome 59, этот метод не может отправлятьBlob с типом, который не включён в список CORS. Это временное изменение, пока не будет найдено решение проблем безопасности, которые оно создаёт. Для получения дополнительной информации см. ошибку 40087600. |
31 | 29Начиная с Chrome 59, этот метод не может отправлятьBlob с типом, который не включён в список CORS. Это временное изменение, пока не будет найдено решение проблем безопасности, которые оно создаёт. Для получения дополнительной информации см. ошибку 40087600. |
11.3 | 4.0Начиная с Chrome 59, этот метод не может отправлятьBlob с типом, который не включён в список CORS. Это временное изменение, пока не будет найдено решение проблем безопасности, которые оно создаёт. Для получения дополнительной информации см. ошибку 40087600. |
40Начиная с Chrome 59, этот метод не может отправлятьBlob с типом, который не включён в список CORS. Это временное изменение, пока не будет найдено решение проблем безопасности, которые оно создаёт. Для получения дополнительной информации см. ошибку 40087600. |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Beacon_API