300 行源码,2KB 体积:quicklink 的预加载调度设计,比你的 ‘防抖+节流’ 高出一个维度 📅 2026/7/1 7:33:36 前言quicklink 是个只有 300 行源码的库,不到 2KB gzipped。但它融合了 5 个浏览器 API、实现了 3 层渐进降级、内建了并发控制和网络感知。很多 10KB+ 的同类库都没做到这种工程密度。这篇文章拆解它的源码架构,重点看三个设计:异步调度链、渐进降级预加载、去重与并发控制。整体架构:三纵两横用户视角 │ ┌────────────┼────────────┐ ▼ ▼ ▼ listen() prefetch() prerender() (自动模式) (编程式) (编程式) │ │ │ └────────────┼────────────┘ │ ┌─────────┴─────────┐ ▼ ▼ 何时触发? 怎么加载? (调度层) (执行层) │ │ ┌─────┴──────┐ ┌──────┴──────┐ │Intersection│ │ link prefetch│ (最快) │ Observer │ │ fetch() │ (中等) │ │ │ XHR │ (兜底)