news 2026/6/10 13:06:16

js刷新页面的几种方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
js刷新页面的几种方法

JavaScript 刷新页面的几种常用方法

在前端开发中,刷新当前页面是常见需求。JavaScript 提供了多种方式实现页面刷新,下面列出最常用的6 种方法,并附带说明、优缺点和适用场景。

方法代码示例说明是否保留表单数据/滚动位置推荐度
1. location.reload()(最推荐)```javascript
2. location.reload(true)(强制刷新)javascript<br>location.reload(true);<br>已废弃(现代浏览器忽略 true 参数),但旧代码中常见。实际效果同 reload()不保留★★★
3. window.location.href = window.location.hrefjavascript<br>window.location.href = window.location.href;<br>将当前 URL 重新赋值,触发新请求不保留★★★★
4. window.location.assign/current URLjavascript<br>window.location.assign(window.location.href);<br>与 href 赋值类似,加载新文档不保留★★★
5. history.go(0)javascript<br>history.go(0);<br>等同于点击浏览器“刷新”按钮,效果最接近用户手动刷新有时能保留部分状态(如滚动位置)★★★★
6. document.location.replace(current URL)javascript<br>document.location.replace(window.location.href);<br>替换当前历史记录(不会增加新历史项),刷新后无法“后退”到刷新前页面不保留★★(慎用)
详细示例与使用场景

1. 最推荐:location.reload()

<buttononclick="location.reload()">刷新页面</button>
  • 简单、标准、兼容性最好。
  • 适用于大多数场景(如数据更新后刷新、登录超时跳转后刷新等)。

2. 强制从服务器重新加载(绕过缓存)
现代浏览器中reload(true)已无效,推荐使用Cache-Control或以下方式:

// 方法A:添加时间戳参数(推荐)window.location.href=window.location.pathname+'?t='+newDate().getTime();// 方法B:修改 headers(需后端配合或 Service Worker)location.reload();// 结合 meta 或 headers: Cache-Control: no-cache

3. 保留当前路径和查询参数刷新

// 当前页面是 /user?id=123,刷新后仍保持参数window.location.href=window.location.href;

4. history.go(0) - 最像手动刷新

<button onclick="history.go(0)">刷新</button>
  • 用户体验最好,有时能保留滚动位置和部分表单状态。
  • 单页应用(SPA)中慎用,可能引发意外行为。

5. 特殊场景:replace(不留历史记录)

// 登录成功后跳转并刷新,防止后退回到登录页document.location.replace('/dashboard');
实际应用组合示例
<!-- 登录成功后刷新页面 --><script>functionloginSuccess(){alert('登录成功!');location.reload();// 推荐方式}</script><!-- 数据提交后刷新(防止重复提交) -->function submitForm() { // 提交 AJAX... if (success) { location.reload(); } }<!-- 定时自动刷新(如监控页面) -->setInterval(() => { location.reload(); }, 30000); // 每30秒刷新一次
总结推荐顺序
  1. 优先使用location.reload()—— 最标准、最简单。
  2. 需要绕过缓存—— 在 URL 加时间戳参数。
  3. 追求最像手动刷新—— 用history.go(0)
  4. 避免产生新历史记录—— 用location.replace()

99% 的场景下,location.reload()就足够了!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/4 21:07:56

如何用 Yuer DSL 构建一个投资风险量化前置裁决模板

1. 背景&#xff1a;问题不在“算得准不准”&#xff0c;而在“该不该开始算”在 EDCA OS / Yuer DSL 的多轮高责任场景测试中&#xff0c;我们发现一个在工程实践中反复出现的问题&#xff1a;多数 AI 投资系统的风险&#xff0c;并不源于模型能力不足&#xff0c; 而源于 在信…

作者头像 李华
网站建设 2026/6/7 22:52:49

AI 量化为什么不敢上线?——我的 Fail-Closed 模板实战

很多人私下问过我一个问题&#xff1a;“AI 都已经能写策略、跑回测、算因子了&#xff0c; 为什么真正能上线跑真金白银的系统&#xff0c;反而很少&#xff1f;”这个问题&#xff0c;其实不在模型能力上&#xff0c; 而在上线这一步&#xff0c;谁敢签字。一、AI 量化“不敢…

作者头像 李华
网站建设 2026/6/5 3:15:18

欧盟EN 18031-1无线设备认证

对于计划进军欧盟市场的无线设备制造商来说&#xff0c;EN 18031-1已成为绕不开的合规门槛。自2025年8月1日正式强制执行以来&#xff0c;不少企业因对标准细节理解偏差&#xff0c;遭遇了产品扣留、测试反复等问题&#xff1a;有的误将旧版EN 303645证书当作豁免依据&#xff…

作者头像 李华
网站建设 2026/6/10 13:00:05

【ITK手册003】深入理解 itk::SmartPointer:医疗影像开发的内存基石

【ITK手册003】深入理解 itk::SmartPointer&#xff1a;医疗影像开发的内存基石 1. 概括 在基于 ITK (Insight Toolkit) 的医学图像处理软件开发中&#xff0c;内存管理是维持系统稳定性的关键。itk::SmartPointer<T> 是 ITK 实现自动内存管理的核心机制。它通过侵入式…

作者头像 李华
网站建设 2026/6/6 3:02:50

三菱FX3U + 485ADP MB与台达MS300变频器通讯程序分享

三菱FX3U485ADP MB与台达MS300变频器通讯程序 功能&#xff1a;通过三菱fx3u 485ADP-MB板对台达ms300变频器进行modbus通讯&#xff0c;实现频率设定&#xff0c;启停控制&#xff0c;输出频率读取&#xff0c;输出电压读取。 配件&#xff1a;三菱fx3u 485ADP-mb&#xff0c;三…

作者头像 李华