news 2026/2/9 7:49:57

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/2/8 9:34:22

深度解构:从chroot到容器——Mock构建环境的隔离技术演进与问题诊断

深度解构&#xff1a;从chroot到容器——Mock构建环境的隔离技术演进与问题诊断 引言&#xff1a;RPM构建的隔离需求 在Linux发行版开发中&#xff0c;RPM包的构建需要一个干净、可控的环境以确保构建的可重复性和可靠性。Mock作为Fedora社区开发的RPM构建工具&#xff0c;正…

作者头像 李华
网站建设 2026/2/3 13:05:01

springboot疫苗发布和接种预约系统(11650)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/2/7 22:51:19

飞书多维表格基础操作

本文档旨在指导用户从零开始搭建一套包含客户管理、电联记录及快捷录入功能的 CRM 系统&#xff0c;涵盖 AI 字段应用、自动化工作流配置及仪表盘展示。1. 环境准备与设置 在开始操作前&#xff0c;请确保使用体验最佳的客户端环境。 安装客户端&#xff1a;下载并安装 Windows…

作者头像 李华
网站建设 2026/2/5 16:43:44

通达信专抓超跌副图无未来

{}RSV:(CLOSE-LLV(LOW,20))/(HHV(HIGH,20)-LLV(LOW,20))*100; K:SMA(RSV,3,1),COLORWHITE; D:SMA(K,3,1),COLORYELLOW; 超跌极限买入:IF(CROSS(K,D) AND "CYS.CYS"<-10 AND REF("ASR.ASR",3)<10,50,0); 超跌反弹:IF(CROSS(K,D) AND K<20,80,20),C…

作者头像 李华
网站建设 2026/2/6 9:29:40

【课程设计/毕业设计】基于深度学习的砖头墙裂缝识别

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

作者头像 李华