tgoop.com/mefody_dev/339
Last Update:
fetchLater API
В Chrome 135 вышла из Origin Trial интересная апишка. Появился метод fetchLater
, который принимает почти все те же аргументы, что и обычный fetch
, но браузер отправит запрос попозже, а точнее в самое раннее из наступивших событий:
- документ уничтожен;
- прошло заданное пользователем время;
- браузер решил, что пора отправлять.
Третий пункт, конечно, самый интересный, но в эксплейнере буквально так и написано, конкретных подробностей найти не смог.
Для чего это может быть полезно? Маячки, замена sendBeacon
. Иногда нужно отправить запрос, не обрабатывая его результат. Например, для продуктовой аналитики или сбора метрик перфоманса. Частый кейс: нужно отправить на сервер событие, когда пользователь закрыл вкладку. И тут мы научились картинки быстро вставлять в DOM на beforeunload
, и fetch
дёргать на веру, и специальным методом sendBeacon
пользоваться. Но все эти методы не дают вообще никакой гарантии, что запрос будет отправлен. А хочется иметь специальное место в жизненном цикле страницы, где запрос всё-таки будет отправлен в любом случае.
Вот для этого и придумали fetchLater
. Причём это не самоуправство Chrome мимо спецификаций, а вполне себе коллективная работа всех мажорных браузеров, Firefox и WebKit эксплейнер одобрили.
Но спеки, справедливости ради, пока нет. Есть черновой черновик спецификации, эксплейнер на гитхабе и дизайн-документ для Chromium. Тем не менее в эксплейнере есть хорошие примеры, как новый API можно применять — их можно расширить под ваши нужды аналитики.
https://chromestatus.com/feature/4654499737632768
BY mefody.dev

Share with your friend now:
tgoop.com/mefody_dev/339