news 2026/4/17 11:45:41

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/16 18:20:00

一篇搞定MySQL:从环境搭建到深入理解,高效入门数据库

MySQL相关知识点可以通过点击以下链接进行学习一起加油&#xff01; 文章目录 MySQL与MariaDB&#xff1a;同源而生的数据库系统一、MySQL的安装与初步配置 1. 更新系统软件包列表2. 安装MySQL服务器3. 检查MySQL服务状态4. 首次登入MySQL5. 为root用户配置密码 步骤一&#xf…

作者头像 李华
网站建设 2026/4/13 5:11:05

MT-Safety 标签env 和 locale

一、先给一句话总览 env 和 locale 并不是“函数线程安全不安全”, 而是说: 这些函数依赖一个“全局可变对象”, 只要这个对象在多线程运行期间不被修改,它们就是安全的。 二、背景:glibc 的 MT-Safety 注解体系 glibc 文档把函数分成几类: MT-Safe:多线程下可并发调用…

作者头像 李华
网站建设 2026/4/17 12:35:18

写给开发者、内容创作者:当你“快做完了”却开始崩,这不是技术问题

你可能经历过这种时刻&#xff1a;功能都差不多了、测试也跑起来了、上线只差临门一脚——结果你突然开始焦虑、失眠、疯狂想重构、对细节极度挑剔&#xff0c;甚至找借口把发布往后拖。 《最小阻力之路》把这段状态称为“完成期”的典型难关&#xff1a;越接近成果&#xff0c…

作者头像 李华
网站建设 2026/4/15 20:49:11

除了安全更新,EN 18031-1还有哪些重要的认证要求?

除安全更新外&#xff0c;EN 18031-1 作为欧盟 RED 指令下的核心网络安全标准&#xff0c;还明确了访问控制与身份验证、安全存储与通信、网络弹性、技术文档与合规声明四大核心要求&#xff0c;这些要求与安全更新共同构成设备进入欧盟市场的基础安全基线&#xff0c;具体内容…

作者头像 李华
网站建设 2026/4/4 11:03:40

PostIn速成手册(12) - 使用接口场景用例验证接口业务场景的正确性

PostIn是一款开源免费的接口管理工具&#xff0c;支持免费私有化部署&#xff0c;一键安装零配置&#xff0c;页面设计简洁易用。在接口测试过程中&#xff0c;需要通过模拟真实业务流&#xff0c;弥补单一接口测试的局限性&#xff0c;有效保障系统在复杂交互场景下的功能正确…

作者头像 李华