news 2026/4/4 0:40:22

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/4/3 5:42:36

Visual Studio 2022中配置cuda环境

一、前置条件&#xff08;必须先完成&#xff09; 在配置VS2022前&#xff0c;你需要先安装好以下软件&#xff0c;否则配置会失败&#xff1a; NVIDIA显卡驱动&#xff1a;确保你的电脑有NVIDIA独立显卡&#xff0c;且安装了最新/兼容的显卡驱动&#xff08;可通过NVIDIA控制…

作者头像 李华
网站建设 2026/4/2 3:50:32

深度学习毕设项目:基于python深度学习的砖头墙裂缝识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/3/24 12:47:45

解锁盲盒新玩法✨定制你的专属小程序

&#x1f4a1;想要打造独特盲盒小程序&#xff1f; 这些玩法你的项目都有了吗&#x1f447; ✔️福袋惊喜 – 超值组合随机触发 ✔️一番赏经典 – 人气奖池阶梯抽取 ✔️无限赏模式 – 奖池常驻永不下架 ✔️集合赏专题 – 主题系列成套收集 ✔️进阶挑战 – 收集成就解锁隐藏…

作者头像 李华
网站建设 2026/3/23 1:12:50

通达信回归斜率线

{}回归斜率线A:EMA(SLOPE(C,4)*20C,42); 经典RL:(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100; 经典K:SMA(经典RL,3,1); 经典D:SMA(经典K,3,1); 经典J:3*经典K-2*经典D; MAHL1:100*((EMA((HL)/2,3)-LLV(EMA((HL)/2,5),30)-(EMA(H,20)-EMA(L,20))) /(LLV(EMA((HL)/2,5),30…

作者头像 李华
网站建设 2026/3/22 12:47:34

【数据分享】全国村级行政区矢量(免费/无套路分享)

行政区划边界矢量数据是我们在各项研究中最常用的数据。本次我们为大家带来的是我国分省的行政村&#xff08;社区&#xff09;的行政区划矢量数据&#xff01;数据格式为Shp&#xff0c;每一个省份的行政村&#xff08;社区&#xff09;行政区划数据保存为一个shp文件。数据范…

作者头像 李华
网站建设 2026/3/26 22:56:42

AI圈炸锅!DeepSeek-OCR黑科技:压缩10倍长文本,成本直降90%!VTC技术让大模型“过目不忘“,中科院发布权威评测

【导读】DeepSeek-OCR的视觉文本压缩&#xff08;VTC&#xff09;技术通过将文本编码为视觉Token&#xff0c;实现高达10倍的压缩率&#xff0c;大幅降低大模型处理长文本的成本。但是&#xff0c;视觉语言模型能否理解压缩后的高密度信息&#xff1f;中科院自动化所等推出VTCB…

作者头像 李华