2017-02-07 4 views
-2

Корпус: пользователь покупает авиабилет из Американской авиакомпании на моем веб-сайте. Для обработки заказа требуется час, после чего мне нужно отобразить вкладку навигации.Загрузить данные без жесткого обновления

Вопрос: Я не хочу, чтобы пользователь обновлял страницу для загрузки данных. Есть ли что-то, что может вызвать вызов API через час после покупки билета пользователя?

Я использую AngularJS, Express, NodeJS.

Update:

  1. Я думал об использовании SetTimeout (Fn, задержка), чтобы инициализировать таймер, а затем использовать clearInterval (ID), чтобы закрыть его после запроса успеха. Однако браузер выполняет один асинхронный поток, поэтому задержка таймера не гарантируется. Кроме того:

    • Если пользователь поставил компьютер в спящий режим, setTimeout замерзнет.
    • Если пользовательский переключатель включен, функция setTimeout становится неточной.
    • Поведение setTimeout может отличаться в разных браузерах.
  2. Я также рассматриваю узел-cron, но мне все равно нужно сделать вызов узла автоматически, так как контроллер навигации загружается при запуске приложения. Это означает, что пользователю по-прежнему приходится выполнять жесткое обновление, чтобы увидеть вкладку навигации.

  3. Есть ли способ использовать кеш браузера для этого?

+1

Вы можете использовать функцию JavaScript setTimeout. Но есть хороший шанс, что ваш пользователь собирается закрыть браузер до часа прохода в любом случае. – Jesse

ответ

0

С помощью javascript вы можете динамически загружать и изменять данные.

, например, ниже код запускается каждую минуту и ​​внутри, вы можете выполнять асинхронные задачи, такие как вызов http-запросов и динамическое обновление значения.

setInterval(function(){ 
//perform async task and get new value 
document.getElementById('DOM').value = "NEW VALUE"; 
}, 60000); 
Смежные вопросы