BFCache 生命周期恢复:文档代际、陈旧异步结果与副作用对账
后退恢复的页面不是一次普通 reload,JS 堆和旧状态可能原样返回。本文用 pagehide/pageshow 合同、恢复代际和服务端 operation receipt 阻止重复提交与陈旧权限继续使用。
Articles
沉淀 AI、Web、云原生和独立开发经验。
后退恢复的页面不是一次普通 reload,JS 堆和旧状态可能原样返回。本文用 pagehide/pageshow 合同、恢复代际和服务端 operation receipt 阻止重复提交与陈旧权限继续使用。
async/await 只是开始——for await of、AsyncIterator、生成器这些进阶异步能力能优雅处理流式数据。本文讲清 JS/TS 异步进阶:Promise 组合、async 迭代器(for await)、生成器、AbortController 取消、并发控制(p-limit),让异步代码既优雅又可控。
navigator.storage.estimate 只是近似值,persist 返回 true 也不等于用户数据永不消失。本文为 Cache、IndexedDB 与 OPFS 建立 origin 级预算、驱逐检测和分级恢复合同。
不想上 Elasticsearch?PostgreSQL 自己就能做全文检索,中小规模够用。本文讲清 PG 全文检索:tsvector/tsquery、分词与字典、GIN 索引加速、ts_rank 排序、中文分词(zhparser/pg_jieba),以及和向量检索组合做混合检索。
基础 SSE 解析之外,生产客户端还要约束恶意长记录、慢消费者和断线重放。本文用有界 framing、按需拉取和提交后游标建立可恢复链路。
分页看着简单,做错就慢、漏数据、翻不动。本文讲清两种分页:offset(简单但有性能与一致性坑)vs cursor(高效稳定但实现复杂)、各自适用、无限滚动的实现、以及分页要返回的元数据(total/hasMore/cursor),让你的 API 分页既快又稳。
端侧模型由 Wasm、JS glue、权重和 tokenizer 共同组成,任一缓存串版都可能静默产出错误结果。本文给出摘要校验、ABI 清单、隔离头决策和可演练回滚方案。
服务跑着两眼一抹黑,出事靠用户报告?本文讲清可观测性的日志与监控怎么做:结构化日志(JSON + 请求 ID)、日志级别与采样、监控指标(RED/USE 方法)、告警设计(别告警疲劳)、以及"出事时怎么用日志+指标快速定位"的排查思路。
把推理搬进 Worker 只能避免主线程卡顿,不能自动解决串结果、积压和取消。本文设计可解码消息 envelope、合作式停止、硬终止与 generation 隔离协议。
测试 React 不是"什么都测",而是"测对的东西"。本文讲清 React 测试金字塔:什么该单测(工具函数/hooks)、什么该组件测(用户交互)、什么该 E2E(关键流程),工具选型(Vitest/Testing Library/Playwright),以及"测行为不测实现"的核心原则。
批量改套餐、撤销权益或重发通知时,一个过期筛选条件就可能影响全部客户。本文把目标集合、逐项前置条件、审批证据和外部效果回执冻结成可暂停、可对账的执行计划。
CSS 一多就乱:命名冲突、全局污染、优先级战争。本文讲清几种主流 CSS 架构模式:BEM(命名约定)、CSS Modules(局部作用域)、CSS-in-JS(styled-components/emotion)、以及 Tailwind/原子 CSS 的崛起,各自适用与怎么选。