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