Javascript onReady()不';当浏览器还原页面时,不执行$.getJSON()

Javascript onReady()不';当浏览器还原页面时,不执行$.getJSON(),javascript,Javascript,首先让我声明,当我打开一个新的浏览器页面并输入web服务器的URL时,下面的代码可以正常工作,当我重新加载页面(F5或Ctrl-R)时,它也可以正常工作 但是,如果我重新打开一个关闭的浏览器窗口,浏览器恢复我的旧选项卡,它只能部分工作:然后,更新并显示今天的日期(参见下面的代码,非常简单),但似乎没有执行getJSON()调用。浏览器将继续显示上一个会话中的数据。仅当我更新页面(F5)时,浏览器窗口中的数据才会更新。 我肯定不是服务器。还可能是什么 浏览器:Firefox、Chrome、最新版本

首先让我声明,当我打开一个新的浏览器页面并输入web服务器的URL时,下面的代码可以正常工作,当我重新加载页面(F5或Ctrl-R)时,它也可以正常工作
但是,如果我重新打开一个关闭的浏览器窗口,浏览器恢复我的旧选项卡,它只能部分工作:然后,更新并显示今天的日期(参见下面的代码,非常简单),但似乎没有执行getJSON()调用。浏览器将继续显示上一个会话中的数据。仅当我更新页面(F5)时,浏览器窗口中的数据才会更新。
我肯定不是服务器。还可能是什么

浏览器:Firefox、Chrome、最新版本

在index.html中使用此代码

<script>
  $(document).ready(onReady());
</script>

$(document).ready(onReady());
这段代码在helper.js中

var onReady = function() {
  // Display current date
  var dateText = moment().format("dddd, Do MMMM YYYY");
  var dateHTML = "<h2>" + dateText + "</h2>";
  $("#date-col").append(dateHTML);
  :
  :
  // Retrieve data from server and display it
  var statText = "Statistics:";
  $.getJSON("courses/starter", function(data) {
    statText = statText.concat(" " + data.count + " starter");
    $.getJSON("courses/dessert", function(data) {
      statText = statText.concat(", " + data.count + " dessert");
      $("#statistics").text(statText);
    });
  });
}
var onReady=function(){
//显示当前日期
var dateText=moment().format(“dddd,dommmm-YYYY”);
var dateHTML=“+dateText+”;
$(“#日期列”).append(dateHTML);
:
:
//从服务器检索数据并显示它
var statText=“统计数据:”;
$.getJSON(“课程/初学者”,函数(数据){
statText=statText.concat(“+data.count+”starter”);
$.getJSON(“课程/甜点”,函数(数据){
statText=statText.concat(“,”+data.count+“甜点”);
$(“#统计”).text(statText);
});
});
}

您必须传递回调,而不是立即执行函数

尝试:


$(文件).ready(onReady);
$(document).ready(handler)
希望参数是函数表达式,当
DOM
准备就绪时,该表达式将在以后执行

在您的示例中,您正在调用
onReady()
函数,而该函数没有返回任何内容(
undefined
),因此执行类似于:
$(document).ready(undefined)

使用函数表达式,如
$(document).ready(onReady)
onReady()
应返回稍后执行的函数

速记应该是
$(onReady)

<script>
  $(document).ready(onReady);
</script>