history.back,Firefox 必须发送将会导致重复之前动作的数据(例如搜索或者下订单)。...

Firefox插件Web Developer,禁用了缓存

当使用history.back返回一个submit过的画面时,由于上述画面的缓存被插件禁用,因此浏览器需要重新去后台访问画面。
Firefox浏览器基于安全性的考虑当检测到一个画面被重复提交2次时就会提示【要显示此页面, Firefox 必须发送将会导致重复之前动作的数据(例如搜索或者下订单)。】

移除Web Developer中的禁用缓存功能后,浏览器就不会提示上述信息!
### `history.back()` 是否会触发网络请求 `history.back()` 方法用于导航到浏览器历史记录中的上一个页面,其行为等同于用户点击浏览器的“后退”按钮。在大多数情况下,该方法不会重新加载远程资源,而是从浏览器缓存中恢复页面状态。 如果页面内容是通过本地文件系统(如 `file://` 协议)加载的,并且页面本身没有依赖外部网络资源,则调用 `history.back()` 不会引发任何网络请求[^1]。 然而,在某些特定场景下,仍可能触发网络请求: - 如果页面使用了动态加载数据的技术(如 AJAX 或 `fetch`),并且这些请求未被缓存或拦截处理,则返回时可能会重新发起请求。 - 页面中嵌入的某些脚本或资源(如图片、字体)引用了远程服务器地址,在缓存失效或禁用缓存的情况下,可能导致网络请求。 - 使用了服务端渲染(SSR)或 HTML5 History API 实现前端路由控制,若未配置适当的缓存策略,也可能导致页面重新加载并触发网络请求[^2]。 例如以下代码片段展示了如何通过 JavaScript 控制页面导航行为: ```javascript function onLoadPage() { if (event.srcElement.tagName == "SPAN") { oFrame = top.window.middle.frames[2]; oTxt = event.srcElement.innerText; switch (oTxt) { case "前 进": oFrame.history.go(1); case "后 退": oFrame.history.back(); case "刷 新": oFrame.location.reload(); } } } ``` 上述代码中,当执行 `history.back()` 时,浏览器将尝试恢复上一页面的状态。若该页面此前已完全加载并缓存,通常不会再次发起网络请求[^1]。 ### 小结 在本地 Web 应用中,`history.back()` 方法一般不会触发新的网络请求,前提是页面及其资源均已本地化并正确缓存。若页面依赖远程资源或采用动态加载机制,则需特别注意缓存策略和资源引用方式,以确保离线环境下的正常运行。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值