Skip to content

如何使用JavaScript重新加载页面?

简短的答案

大多数情况下,window.location.reload()就足够重新加载当前页面了。这个方法的行为与浏览器的刷新按钮完全相同,使用相同的缓存规则等。

// 重新加载页面
window.location.reload();

稍微长一点的答案

虽然window.location.reload()是重新加载页面最常见的方法,但你可能需要了解一些细微差别。

正如前面所说,兼容性不应该是一个问题,所以我们不会深入讨论。然而,有一个值得注意的奇怪之处,涉及到该方法的参数。事实证明,Firefox曾经支持一个可选的forceGet布尔参数,在旧代码中可能会遇到。这意味着将true传递给该方法将绕过浏览器的缓存

// 在Firefox中绕过缓存
window.location.reload(true);

除此之外,window.location.reload()会重新加载页面时保留表单中的POST数据,这可能不是你想要的。在这种情况下,你可能希望将window.location.href赋值给它自身以引起重新加载。这将导致页面重新加载,但也会清除POST数据。

// 清除POST数据
window.location.href = window.location.href;

这种技术也有一些注意事项。例如,如果当前的URL包含一个哈希值,页面将不会重新加载。在这种情况下,你可能想使用String.prototype.split()方法从URL中删除哈希值,然后将其重新赋值给自身。

// 重新加载页面,从URL中删除哈希值
window.location.href = window.location.href.split('#')[0];

正如你所看到的,每种技术都有其优缺点,所以你应该选择最适合你需求的方法。话虽如此,window.location.reload()是最常见和可靠的重新加载页面的方法,所以大多数情况下你应该使用它。