当前位置:首页 > 技术文章 > 正文内容

Chrome “Local Overrides” 的本质

zonemu11小时前技术文章3

Chrome “Local Overrides” 的本质,就是在浏览器的网络层(Network/Fetch)给某些 URL 打了一个“本地文件映射”的钩子:


1. 你第一次对某资源点 “Save for overrides” 时,DevTools 会

- 通过 DevTools Protocol 的 Network/Fetch 接口让浏览器正常走一次网络请求,

- 在 `Network.responseReceived` → `Network.getResponseBody` 拿到服务器返回的内容,

- 写到你指定的本地 overrides 文件夹里,建立起「原 URL <-> 本地文件」的映射。


2. 之后每次页面加载到这个 URL:

- DevTools 在后台用 CDP 的 Fetch.enable({patterns:…}) 给浏览器注册一个请求拦截器,

- 当浏览器遇到匹配的请求,就触发 `Fetch.requestPaused`,

- DevTools 不让它走向网络,而是读取本地 overrides 目录下对应的文件,

- 用 `Fetch.fulfillRequest` 把文件内容(经过 base64 编码)当作“虚拟的 HTTP 响应”直接发给页面。


3. 如果某次你取消了 overrides 或删掉了本地文件,DevTools 会自动 `Fetch.continueRequest`,让请求恢复到正常的网络流程。


——


归纳下来,Local Overrides 的关键点:

- 利用 Chrome DevTools Protocol(尤其是 Fetch domain)在“请求发出前”/“响应回来后”挂钩;

- “Save for overrides” 时抓一次真响应并存盘;“生效时”直接从本地盘读并用虚拟响应替代网络;

- 对页面、脚本、样式、图片都通用,只要 URL 匹配就能无感替换。


这种机制让你在不动后端、不部署新版本的情况下,随时把线上资源换成本地修改版,刷新就见效。

相关文章

2020最新门店财务收支管理系统(通用版),直接套用,自动计算

连锁企业的财务不知道怎么做各门店的收支表,不会门店汇总,别着急,看这里,今天小编和大家分享一套2020最新最新门店财务收支系统(通用版),可以快速录入,自动计算,既方便又全面!希望对大家有所帮助!(文...

Vue3 如何实现父子组件传值?(vue父子组件传值props)

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从...

崩溃!3 道 React 面试必卡题,吃透稳过金九银十

凌晨三点还在对着 “React 组件为什么重复渲染” 抓耳挠腮?别慌!今天挑出 3 道让 90% 候选人卡壳的高频题,全是大厂面试官挖的 “坑”,手把手教你见招拆招,看完直接装进面试 “弹药库”!先问...

快速上手React(快速上手的高级表达)

web前端三大主流框架1、Angular大家眼里比较牛的框架,甚至有人说三大框架中只有它能称得上一个完整的框架,因为它包含的东西比较完善,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等...

零基础开始学 Web 前端开发,有什么建议?(附视频教程)

WEB前端看似简单,其实不然,要学的知识点很多很杂,对于零基础学习前端的小伙伴来说,一份详细的前端学习知识点大纲尤为重要。下面,话不多说,直接上干货(全网最全,没有之一)。PS:文末有福利(全阶段视频...

react hooks自定义组件居然能这样做

前言  这里写一下如何封装可复用组件。首先技术栈 react hooks + props-type + jsx封装纯函数组件。类组件和typeScript在这不做讨论,大家别白跑一趟。接下来会说一下封...