如何使用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()
是最常见和可靠的重新加载页面的方法,所以大多数情况下你应该使用它。