js刷新当前页面:5种常用方法与场景选择

2026-11-15 0 1

最直接的方式:location.reload()

刷新当前页面,最常用的写法是:

location.reload();

不传参数时,浏览器可能从缓存读取页面资源,效果接近用户点击刷新按钮。需要强制拉取最新内容时,传入 true:

location.reload(true);

不过 true 参数已被标记为废弃,现代浏览器并不保证它的行为。更可靠的做法是配合服务端缓存头,或在 URL 上加时间戳参数。

用 location.href 或 assign 重新赋值

location.href = location.href;

location.assign(location.href);

这两种写法本质上是让浏览器重新导航到当前地址,效果与 reload() 类似。区别在于:如果 URL 带有 #hash,重新赋值可能只触发锚点跳转而不会真正重载页面。涉及单页应用的路由时,要特别留意这一点。

replace():不留下历史记录

location.replace(location.href);

replace() 会替换当前历史记录条目,用户点后退不会回到刷新前的页面。这在表单提交后防止重复提交的场景里很有用,但也意味着用户失去了返回上一步的入口,使用前要权衡。

history.go(0):等价但语义弱

history.go(0);

它表示在历史记录中前进或后退 0 步,实际效果就是重载当前页。写法简短,但可读性不如 reload(),团队协作中不推荐作为首选。

局部刷新:不重载整个页面

如果只是想让某块内容更新,完全刷新代价太大。可以用 fetch 拉取数据后更新 DOM,或把刷新逻辑封装成函数直接调用:

async function refreshList() {

const res = await fetch(‘/api/list’);

const data = await res.json();

render(data);

}

refreshList();

这种方式能保留滚动位置、表单输入和页面状态,体验明显更好。代价是需要自己处理数据请求和渲染逻辑。

常见坑点

表单重复提交:刷新前若页面处于 POST 结果页,浏览器可能弹出“确认重新提交表单”的提示。用 replace() 或采用 POST-Redirect-GET 模式可以规避。

刷新循环:在 beforeunload 或定时器里不加条件地调用刷新,容易造成页面反复重载甚至卡死。务必加判断条件。

单页应用:使用 History 路由的框架中,直接 location.reload() 会丢失内存中的状态,应优先使用框架提供的路由跳转或数据重取方法。

怎么选

需要整页重载且保留历史记录,用 location.reload();要强制绕过缓存,改用带时间戳参数的 URL 赋值;不希望用户后退回到旧页面,用 location.replace();只需更新局部内容,就走接口请求加 DOM 更新的路线。选对方法,比记住多少种写法更重要。

看过这篇文章的人,推荐看以下内容

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

版权声明:所有的源码、软件和资料,不得使用于非法商业用途,不得违反国家法律,一切关于该资源商业行为与本站无关。

免费cms模板 建站百科 js刷新当前页面:5种常用方法与场景选择 https://www.mianfeicms.com/12533.html

我是签名

下一篇:

已经没有下一篇了!

相关文章

猜你喜欢
发表评论
暂无评论