Published onOctober 22, 2025前端性能优化前端性能优化指的是,通过各种技术手段,提高网页的加载速度,渲染速度,交互响应速度,减少资源占用,提高用户体验。 按照测量在先,优化在后的原则,我将从以下几个方面进行分析: 1. 性能检测 2. 网络请求优化 3. 资源加载优化 4. 代码与架构优化 5. 渲染性能优化 6. 感知体验优化 性能检测 1. 确立性能指标与目标:关注核心 Web 指标(Core Web Vitals): - LCP(最...
Published onOctober 22, 2025区分 type 和 interfaceTypeScripttypescript 就是在 JavaScript 的基础上,增加了类型系统,让代码在编写的时候,就可以发现错误。通过丰富的配置项,使得类型检查的严格程度可以自定义。 type 是类型别名,通过&实现交叉类型,不支持声明合并,不可被类实现 interface 是接口,使用 extends 继承,支持声明合并,可被类实现 解决什么问题? 将弱类型的 JavaScript,转向"强类型"。更强的约束提...
Published onOctober 22, 2025模块化开发CommonJSAMDCMDUMDESM模块化开发指的是,在前端开发过程中,每个模块都是独立的单元,我们通过封装变量(如ESM的独立作用域),避免全局暴露,从而实现变量隔离避免全局污染。这样在代码修改时,可以更好的控制影响范围,且提高了复用性。 当前已有的实现包括 CommonJS,AMD,CMD,UMD,ESM 1. CommonJS 是同步加载的(适合服务器启动时做预处理),在 Node 环境下使用 2. AMD 异步加载(避免浏览...
Published onOctober 22, 2025设计模式design单例模式 确保一个类只有一个实例,并提供全局访问点。保证了一个类只有一个实例。 解决了什么问题? 保证全局唯一,避免数据状态混乱,节省资源。比如 modal 弹窗(只需要一个,最多替换里面的内容),比如文档编辑器示例(一个页面中只需要一个,允许操作这个示例),比如 Redux(只需要一个管理全局数据) 最佳实践: 1. ES6 导出的对象也是唯一的,无需手动实现单例 2. 实现的时候需要注意隐藏构...
Published onOctober 21, 2025HTTPHTTPNetworkHTTP是超文本传输协议,HTTP1.1,HTTP2,HTTP3分别代表三个版本,可用于前后端数据通信。 升级后,优化了哪些功能?解决了哪些问题? 1. HTTP1.1 时期,默认复用TCP连接(持久连接),请求必须按照顺序响应,会造成队头阻塞。浏览器最多支持 6 个 TCP 连接。重复传输了头部字段,无优先级控制。 2. 从 HTTP1.1,升级到 HTTP 2 后,通过二进制分帧和多路复用的能...