如何使用JavaScript刷新页面?
当前回答
你可以用两种方式写。第一种是重新加载页面的标准方式,也称为简单刷新
location.reload(); //simple refresh
另一种叫做硬刷新。在这里传递布尔表达式并将其设置为true。这将重新加载页面,销毁旧缓存并从头开始显示内容。
location.reload(true);//hard refresh
其他回答
我找到了
window.location.href = "";
or
window.location.href = null;
还进行页面刷新。
这使得移除任何哈希值后重新加载页面变得非常容易。当我在iOS模拟器中使用AngularJS时,这非常好,因此我不必重新运行应用程序。
要使用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。。。,刷新页面应该意味着向页面获取新的和更新的内容。无论如何,这个答案很快就会消失/
使用JavaScript刷新页面有多种无限方式:
location.reload()历史记录.go(0)location.href=位置.hreflocation.href=位置.pathnamelocation.replace(location.pathname)location.reload(false)如果我们需要从再次打开web服务器(例如文档内容动态更改),我们会将参数传递为true。
您可以继续列表中的创意:
window.location=窗口位置window.self.window.self.window.window.location=窗口位置…和其他534种方式
var方法=[“location.reload()”,“history.go(0)”,“location.href=位置.href”,“location.href=位置.路径名”,“location.replace(location.pathname)”,“location.reload(false)”];var$body=$(“body”);for(var i=0;i<methods.length;++i){(函数(cMethod){$body.append($(“<button>”{text:c方法}).on(“单击”,函数(){eval(cMethod);//不要怪我使用eval}));})(方法[i]);}按钮{背景:#2ecc71;边框:0;颜色:白色;字号:粗体;字体系列:“Monaco”,monospace;填充:10px;边界半径:4px;光标:指针;过渡:背景色0.5s轻松;边距:2px;}按钮:悬停{背景:#27ae60;}<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script>
如果当前页面是通过POST请求加载的,您可能需要使用
window.location = window.location.pathname;
而不是
window.location.reload();
因为如果在POST请求加载的页面上调用window.location.reload()将提示确认。
具有不同缓存相关行为的三种方法:
location.reload(true)在实现location.reload()的forcedReload参数的浏览器中,通过获取页面及其所有资源(脚本、样式表、图像等)的新副本来重新加载。不会从缓存中提供任何资源-从服务器获取新副本,而无需发送任何副本(如果修改后或没有与请求中的标头匹配)。相当于用户在可能的情况下在浏览器中进行“硬重新加载”。请注意,Firefox(请参阅MDN)和Internet Explorer(请参阅MSDN)支持将true传递到location.reload(),但不受普遍支持,也不是W3 HTML 5规范、W3 HTML 5.1草案规范和WHATWG HTML生活标准的一部分。在不支持的浏览器中,如Google Chrome,location.reload(true)的行为与location.reload()相同。location.reload()或location.reload(false)重新加载页面,获取页面HTML本身的新的、未缓存的副本,并对浏览器缓存的任何资源(如脚本)执行RFC 7234重新验证请求,即使它们是新的。RFC 7234允许浏览器在不重新验证的情况下为它们提供服务。据我所知,在执行location.reload()调用时,浏览器应该如何使用其缓存并没有具体说明或记录;我通过实验确定了上述行为。这相当于用户只需按下浏览器中的“刷新”按钮。location=位置(或无限多其他可能涉及指定位置或其财产的技术)仅当页面的URL不包含fragid/hashbang时才有效!重新加载页面,而无需重新蚀刻或重新验证缓存中的任何新资源。如果页面的HTML本身是新的,这将重新加载页面,而不执行任何HTTP请求。这相当于(从缓存角度)用户在新选项卡中打开页面。但是,如果页面的URL包含哈希,则这将无效。同样,据我所知,这里的缓存行为没有具体说明;我通过测试确定了这一点。
总之,您希望使用:
location=缓存的最大使用位置,只要页面的URL中没有哈希,在这种情况下,这将不起作用location.reload(true)在不重新验证的情况下获取所有资源的新副本(尽管它不受普遍支持,并且在某些浏览器(如Chrome)中的行为与location.reloadlocation.reload()忠实地再现用户单击“刷新”按钮的效果。