如何使用JavaScript刷新页面?
当前回答
下面是一个使用jQuery异步重新加载页面的解决方案。它避免了window.location=window.location引起的闪烁。这个示例显示了一个连续重新加载的页面,就像在仪表板中一样。它经过战斗测试,正在时代广场的信息显示电视上运行。
<!DOCTYPE html>
<html lang="en">
<head>
...
<meta http-equiv="refresh" content="300">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
<script>
function refresh() {
$.ajax({
url: "",
dataType: "text",
success: function(html) {
$('#fu').replaceWith($.parseHTML(html));
setTimeout(refresh,2000);
}
});
}
refresh();
</script>
</head>
<body>
<div id="fu">
...
</div>
</body>
</html>
笔记:
直接像$.get(“”,function(data){$(document.body).html(data)})那样使用$.ajax会导致css/js文件被缓存破坏,即使您使用cache:true,这就是我们使用parseHTML的原因parseHTML不会找到一个body标签,所以你的整个身体都需要放在一个额外的div中,我希望这些知识有一天能帮助你,你可以猜到我们是如何为那个div选择id的使用http equiv=“refresh”,以防javascript/服务器打嗝出现问题,然后页面仍然会重新加载,而不会接到电话这种方法可能会以某种方式泄漏内存,http equiv刷新修复了
其他回答
您应该使用以下代码
window.location.reload();
这适用于所有浏览器:
location.reload();
使用location.reload()。
例如,要在单击id为“something”的元素时重新加载:
$('#something').click(function() {
location.reload();
});
reload()函数接受一个可选参数,该参数可以设置为true,以强制从服务器而不是缓存重新加载。该参数默认为false,因此默认情况下页面可以从浏览器的缓存中重新加载。
您可能想使用
location.reload(forceGet)
forceGet是一个布尔值,也是可选的。
默认值为false,从缓存中重新加载页面。
如果您希望强制浏览器从服务器获取页面,以清除缓存,请将此参数设置为true。
或者只是
location.reload()
如果您想快速方便地使用缓存。
要使用jQuery重新加载页面,请执行以下操作:
$.ajax({
url: "",
context: document.body,
success: function(s,x){
$(this).html(s);
}
});
这里我使用的方法是Ajax jQuery。我在Chrome 13上测试了它。然后我将代码放入将触发重载的处理程序中。URL为“”,表示此页面。
编辑:不幸的是,我必须很快记下这个答案,因为问题已经改变,用户似乎不太清楚他们在问什么。一些用户评论说,刷新与重新加载页面不同;查看此问题的修订[https://stackoverflow.com/posts/5404839/revisions]据我所知,最初的问题是用AJAX刷新页面,这是ASYNCHRONOUS。。。,刷新页面应该意味着向页面获取新的和更新的内容。无论如何,这个答案很快就会消失/