计时器循环从不运行

Timer loop never runs

本文关键字:运行 循环 计时器      更新时间:2023-09-26

全部,我为这个问题的简单性提前道歉,我是编程新手。我有两个函数,每个函数都提示加载一个url。我想使用一个定时器循环,让这两个函数每30秒运行一次,然后重复这个循环。在下面的代码中,URL加载一次,但从不初始化第二个URL。非常感谢你在这个问题上帮助我!

function initializeViz1() {
      var placeholderDiv = document.getElementById("tableauViz1");
      var url1 = "https://public.tableausoftware.com/views/SCADA_SERVER_DASHBOARD/Dashboard1?:embed=y&:display_count=no";
      var options = {
          width: 2000,
          height: 1200,
          hideTabs: true,
          hideToolbar: false,
          onFirstInteractive: function () {
              workbook = viz.getWorkbook();
              activeSheet = workbook.getActiveSheet();
          }
      };
      viz = new tableauSoftware.Viz(placeholderDiv, url1, options);
  }
  function initializeViz() {
      var placeholderDiv = document.getElementById("tableauViz");
      var url2 = "https://public.tableausoftware.com/views/Book1_1719/Sheet1?%3AshowVizHome=no#1";
      var options = {
          width: 2000,
          height: 1200,
          hideTabs: true,
          hideToolbar: false,
          onFirstInteractive: function () {
              workbook = viz.getWorkbook();
              activeSheet = workbook.getActiveSheet();
          }
      };
      viz = new tableauSoftware.Viz(placeholderDiv, url2, options);
  }

  var counter = 0;
  var i = setInterval(function () {
      // do your thing
      if (counter === 0) {
          $(initializeViz);
      } else if (counter === 1) {
          $(initializeViz1);
      }
      counter++;
      if (counter === 2) {
          clearInterval(i);
      }
  }, 15000);

您可以像这样使用setTimeout()

function testFunction(){
    //do your thing
    setTimeout(testFunction, 30000);
}
testFunction();

此处的相关帖子:连续每5秒调用一个javascript函数