Обратный отсчет, который использует метку времени сервера и отставание обслуживающего работника. Как решить? - PullRequest
0 голосов
/ 12 января 2020

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

Обратный отсчет сайта должен быть синхронизирован c с обратным отсчетом свечей TradingViews. enter image description here

  • В качестве 1-го варианта я попытался использовать new Date(), но он работает некорректно, если время браузера изменилось. Даже разница в 10 с между Время просмотра торговой операции и Время приложения может быть критической.
  • В качестве второго варианта я выбираю время сервера из API приложения и увеличиваю это значение простым методом setInterval(), но иногда он отстает на 10-20 секунд.

    let timestamp = await getServerTime() setInterval(() => { timestamp++; this.currentTimestamp = timestamp }, 1000);

  • В качестве третьего варианта я попытался использовать service-worker для тот же метод setInterval() и pu sh обновили значение для компонента. Эта опция также запускает лаги после длительного использования.


Я прочитал много советов, но ни один из них не помогает решить этот случай. Знаете ли вы какой-либо способ правильно использовать время на стороне сервера, не отставая?

Заранее спасибо!

1 Ответ

1 голос
/ 13 января 2020

Вы можете использовать библиотеку moment.js и метод под названием locale, чтобы получить пользователя локали и рассчитать продолжительность, которую вы можете использовать метод duration

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...