在加载时执行匿名函数,然后使用 setTimeout 每 30 秒再次执行一次

Execute anonymous function on load, then execute again every 30 seconds using setTimeout

抱歉,如果这个问题已经得到解答,我只是在学习 Javascript,似乎无法解决这个问题。

我有下面的匿名函数,它读取 json 文件并更新 html。它每 30 秒成功更新一次,问题是我必须等待 30 秒才能在页面加载时显示数据。我如何修改下面的代码,使其在加载时更新,然后每 30 秒更新一次?

$(function () {
  setTimeout(function() {
  $.ajaxSetup({ cache: false });  
  $.getJSON("data/ticket_data.json", function(result){
  /*some more stuff here*/
  });
},30000);
});

给函数起个名字,调用它,然后把setTimeout放在$.getJSON的回调中:

$(document).ready(getTicketData);

function getTicketData() {
    $.ajaxSetup({ cache: false });
    $.getJSON("data/ticket_data.json", function (result) {
        /*some more stuff here*/
        setTimeout(getTicketData, 30000);
    });
}

如果您需要停止此超时,请查看 clearTimeout()