调用多次调用API的函数

时间:2019-04-18 12:36:53

标签: jquery ajax

我正在尝试复制一个场景,其中网页包含多个区域,每个区域都通过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 data = 188
  •   
  • AjaxTimer:98 data = Vermont
  •   
  • AjaxTimer:98 data = 88
  •   
  • AjaxTimer:98 data = 2014-08-26T00:00:00
  •   
  • AjaxTimer:83次间隔开始
  •   
  • AjaxTimer:85间隔结束
  •   
  • AjaxTimer:83次间隔开始
  •   
  • AjaxTimer:85间隔结束
  •   
  • AjaxTimer:83次间隔开始
  •   
  • AjaxTimer:85间隔结束
  •   

getData不被第二次调用。我不确定这里哪里出问题了。

1 个答案:

答案 0 :(得分:0)

您的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将由时间间隔调用。