Вызовите функцию, которая вызывает API несколько раз - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь повторить сценарий, в котором веб-страница содержит несколько областей, каждая из которых обновляется вызовом API и обновляется каждые X секунд.

window.setInterval(function() {
  console.log("interval start");
  getData;
  console.log("interval end");
}, 5000);

//for (i = 1; i <= 3; i++) {
//    console.log(i);
//    setTimeout(getData, 5000);
//}

function getData(url, id) {
  console.log("getData start");
  $.get(url, function(data) {
    console.log('data=' + data);
    $(id).html(data);
  });
};

getData('@Url.Action("GetTemperature", "SomeData")', '#temp');
getData('@Url.Action("GetStockPrice", "SomeData")', '#stock');
getData('@Url.Action("GetStateName", "SomeData")', '#state');
getData('@Url.Action("GetARandomDate", "SomeData")', '#myDate');

Вот журналы:

  • начало getData
  • AjaxTimer: 95 начало getData
  • AjaxTimer: 95 начало getData
  • AjaxTimer: 95 начало getData
  • AjaxTimer: 98 данных = 188
  • AjaxTimer: 98 данных = Вермонт
  • AjaxTimer: 98 данных = 88
  • AjaxTimer: 98 данных = 2014-08-26T00: 00: 00
  • AjaxTimer: начало 83 интервалов
  • AjaxTimer: конец интервала 85
  • AjaxTimer: начало интервала 83
  • AjaxTimer: конец интервала 85
  • AjaxTimer: 83 начало интервала
  • AjaxTimer: 85 конец интервала

getData не вызывается во второй раз.Я не уверен, где я иду не так здесь.

1 Ответ

0 голосов
/ 18 апреля 2019

Ваш setInterval такой:

    window.setInterval(function () {
        console.log("interval start"); // Log to console
        getData;                       // A variable
        console.log("interval end");   // Log to console
    }, 5000);

Все вызовы функций в JavaScript должны заканчиваться (), поэтому просто обновите среднюю строку до

        getData();

, и getData будетбыть вызванным интервалом.

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