Повторите отмененные API-интерфейсы при изменении местоположения

# #javascript #reactjs #redirect #firebase-analytics

Вопрос:

Всякий раз, когда местоположение окна изменяется, вызываемые вызовы API отменяются браузером. Я запускаю события аналитики по нажатию кнопки, которая также переходит на поддомен и обновляет страницу, так что теперь есть условие гонки. Иногда событие разрешается, а иногда оно отменяется браузером. Попытался решить эту проблему с помощью сервисного работника. Не синхронизируйте обратные вызовы для отмененных событий. Я нашел следующее возможное решение

  1. дождитесь разрешения события, прежде чем перенаправлять
  2. храните в местном хранилище и стреляйте по возвращении обратно
  3. передайте событие, которое будет запущено в качестве параметра запроса, в поддомен и запустите его там

Есть ли лучшее решение для этого ?

введите описание изображения здесь

Комментарии:

1. пинг или sendBeacon-это то, что я искал

Ответ №1:

Определите новый компонент аналитики на глобальном уровне, на который не повлияют изменения маршрута.

  1. Добавьте общую логику в компонент аналитики для получения данных и нажмите API.
  2. Теперь изменение местоположения любого события компонента / уничтожения не повлияет на отмену вызова API.
  3. просто нужно нажать на событие, о котором позаботится компонент rest Analytics.
 <Provider> -- redux store -->
    **<Analytics >** - analytics logic , use redux to notify about event or other logic
    
<App></App> - has route and all other logic

</provider>
 

Комментарии:

1. мой вариант использования также включает переход к платежу, который является внешним.

2. пинг или sendBeacon-это то, что я искал