在循环完成 运行 后使用 Javascript 刷新 window

Use Javascript to refresh a window after a loop has run its course

我正在为我工​​作的公司编写新闻显示,我试图让页面在遍历 JSON 数组的整个长度后刷新。目前一切正常,但我不完全确定刷新命令的去向。目前它所在的位置没有执行。这是我的相关代码:

var i = 0,
    d = null,
    x = null,
    interval = 3000;

    console.log('welcome');

    $(document).ready(function(){
      fetch();
      console.log('fetching');
    });

    function fetch(){
      // get the data *once* when the page loads
      $.getJSON('info.json?ver=' + Math.floor(Math.random() * 100), function(data){
        // store the data in a global variable 'd'
        d = data[0];
        console.log('results');
        console.log(data);
        // create a recurring call to update()
        x = setInterval(function(){
          update()
        }, interval);
      });
    }

    function update(){
      console.log('update starting');
      // if there isn't an array element, reset to the first once
      if (d && !d[i]){
        console.log('got the D');
        clearInterval(x);
        i = 0;
        fetch();
        return;
        if(d[i] >= d.length){
          // refresh the window if the variable is longer than the array
          console.log('refreshing');
          window.location.reload();
        }
      }
      // remove the previous items from the page
      $('ul').empty();
      // add the next item to the page
      $('ul').append(
        '<li>' + d[i]['news']
        + '</li>'
      );
      // increment for the next iteration
      i++;

    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id='news'>
  <ul></ul>
</div>

如果我理解你的问题,你只需要知道你的重新加载函数在哪里是正确的?

好吧 window.location.reload();

$.getJSON('info.json?ver=' + Math.floor(Math.random() * 100), function(data){
    //your code
}).done(function( data ) {
    window.location.reload();
});

写在done部分的函数将在完成main函数的所有代码后执行

我想出了一个我最初没有计划的方向。我意识到,一旦我将用于版本控制的 RNG 添加到我的 .json 文件中,我实际上就不需要刷新页面了。我正在使用迭代循环,所以一旦循环完成,它就会返回顶部,并重新打开 info.json。我的 RNG 看起来像这样:

$.getJSON('info.json?ver=' + Math.floor(Math.random() * 100) + '.' + Math.floor(Math.random() * 100), function(data){
//code here
}

这意味着每次计算 $.getJSON 时,它都会查看与以前不同的版本号,这会强制服务器检查和下载,从而使文件中的内容更新到它们的屏幕上自己的。网络资源如下所示:

info.json?ver=1.23
info.json?ver=2.42
info.json?ver=1.15

绝对不是我正在寻找的解决方案,但它实际上是比我的问题可能提出的更好的解决方案。