JavaScript 的有什么区别
window.location.href = window.location.href
和
window.location.reload()
职能?
JavaScript 的有什么区别
window.location.href = window.location.href
和
window.location.reload()
职能?
如果我没记错的话,window.location.reload()
用 POST 数据重新加载当前页面,window.location.href=window.location.href
而不包括 POST 数据。
正如@W3Max 在下面的评论中所指出的,window.location.href=window.location.href
如果 URL 中有锚点 (#) ,则不会重新加载页面 -window.location.reload()
在这种情况下,您必须使用。
此外,正如下面@Mic 所指出的,window.location.reload()
需要一个额外的参数,skipCache
以便使用window.location.reload(true)
浏览器将跳过缓存并从服务器重新加载页面。window.location.reload(false)
将做相反的事情,并尽可能从缓存加载页面。
如果您说window.location.reload(true)
浏览器将跳过缓存并从服务器重新加载页面。window.location.reload(false)
会做相反的事情。
注:default
为值window.location.reload()
ISfalse
不同之处在于
window.location = document.URL;
如果 URL 中有哈希 (#)(后面有或没有),则不会重新加载页面,而
window.location.reload();
将重新加载页面。
如果您将布尔值 true 添加到重新加载
window.location.reload(true)
,它将从服务器加载。
不清楚这个布尔值的支持程度,W3Org提到 NS曾经支持它
window.location.href 和document.URL的内容之间可能存在差异- 至少在 location.href 和与重定向有关的非标准和不推荐使用的document.location之间曾经存在差异,但是真的是上个千年。
出于文档目的,我会使用window.location.reload()因为这是您想要做的。
如上所述,当 url 中有哈希 (#) 时修改 href 不会重新加载页面。因此,我使用它来重新加载它而不是正则表达式:
if (!window.location.hash) {
window.location.href = window.location.href;
} else {
window.location.reload();
}