JavaScript和JavaScript的区别是什么

window.location.href = window.location.href

and

window.location.reload()

功能呢?


当前回答

不,不应该有。但是,可能在某些浏览器中存在差异,因此在某些情况下,任何一种(或两种)都不能工作。

其他回答

如果将布尔值true添加到重载 Window.location.reload (true)它将从服务器加载。

不清楚这个布尔值是如何被支持的,W3Org提到了NS用来支持它

window.location.href和document的内容可能有区别。URL -至少以前在location之间是有区别的。Href和非标准和弃用文档。位置与重定向有关,但那是上个千年的事了。

出于文档的目的,我将使用window.location.reload(),因为这就是您想要做的。

如果你说window.location.reload(true),浏览器将跳过缓存并从服务器重新加载页面。Window.location.reload (false)将做相反的事情。

注意:window.location.reload()的默认值为false

从我3年的经验来看,我找不出有什么不同……

编辑:是的,就像他们中的一个说的,只有传递一个布尔参数给window.location.reload()是不同的。 如果你传递true,那么浏览器加载一个新页面, 但如果为false,则加载缓存版本…

如前所述,当url中存在散列(#)时修改href将不会重新加载页面。因此,我使用this来重载它,而不是正则表达式:

if (!window.location.hash) {
    window.location.href = window.location.href;
} else {
    window.location.reload();
}

使用JSF,我现在有会话过期后刷新的问题:页面重新加载后的PrimeFaces ViewExpiredException和一些调查,我在FireFox中发现了一个不同:

调用window.location.reload()就像在FF上单击刷新图标一样,它会添加一行

cache - control信息= 0

当设置window.location.href工作时,就像在URL行中按ENTER键一样,它不会发送这一行。

虽然两者都作为GET发送,但第一个(重新加载)正在恢复以前的数据,应用程序处于不一致的状态。