12k
最新

OpenReplay 博客

使用 Web Locks API 修复 Token 刷新竞态

使用 Web Locks API、navigator.locks.request 和令牌重检查,解决标签页间的令牌刷新竞态并防止登出。

OpenReplay Team · Sep 9, 2026 · 5 min read

在浏览器中通过 OPFS 运行 SQLite

在浏览器中使用SQLite与OPFS:配置Worker,选择opfs或opfs-sahpool,并避免静默回退到内存数据库。

OpenReplay Team · Sep 9, 2026 · 6 min read

无需 JavaScript 即可控制 Web 组件

使用自定义 invoker commands 仅靠 HTML 控制 Web 组件。了解 command 和 commandfor 如何在无需 JavaScript 的情况下连接按钮与自定义元素。

OpenReplay Team · Sep 8, 2026 · 6 min read

如何修复 SPA 部署后出现的 Cannot GET 错误

通过 Nginx、Apache、Netlify、Vercel 和 S3 CloudFront 的服务器重写,修复部署后 SPA 的 Cannot GET 和 404 错误。

OpenReplay Team · Sep 8, 2026 · 6 min read

别让标题在错误的位置换行

用合适的 CSS 和 HTML 修复标题断行和长 URL:nbsp、wbr、overflow-wrap:anywhere、word-break:break-all、hyphens:auto、text-wrap。

OpenReplay Team · Sep 7, 2026 · 5 min read

用 Node 内置测试运行器替代 Jest

对比 Node test runner 与 Jest:稳定功能、watch mode、snapshot、fake timers、coverage、TypeScript 支持,以及迁移时的限制。

OpenReplay Team · Sep 7, 2026 · 6 min read

用状态机构建一个测验应用

使用 React 和 XState v5 构建测验应用。将四个界面建模为状态机,替换布尔标志,并守护最终结果状态。

OpenReplay Team · Sep 6, 2026 · 6 min read

幂等性详解及其对 API 的意义

解释幂等键:防止重复 API 请求,修复竞态条件,并通过原子性占用和事务安全重试 POST。

OpenReplay Team · Sep 6, 2026 · 6 min read

修复服务端渲染应用中的 “window is not defined” 错误

通过挂载钩子、typeof window 检查和仅客户端导入,修复服务端渲染应用中的 window is not defined 错误。

OpenReplay Team · Sep 5, 2026 · 6 min read

面向 Web 开发者的提示注入(Prompt Injection)详解

面向Web开发者的提示词注入解析:为什么没有提示层修复,以及如何限制间接攻击、不可信输出和工具风险。

OpenReplay Team · Sep 5, 2026 · 5 min read

初探 Gea:一个编译器优先的 UI 框架

Gea 是一个以编译器为先的 JavaScript UI 框架,使用 JSX、类 store 和直接 DOM 补丁。文章分析其 props 模型、体积和成熟度。

OpenReplay Team · Sep 4, 2026 · 5 min read

从零开始编写 WordPress 插件

从零构建 WordPress 插件,涵盖钩子、启用和停用钩子、设置页、数据清理、转义以及安全保存。

OpenReplay Team · Sep 4, 2026 · 6 min read

如何修复 React 中的 Invalid Hook Call 错误

通过检查堆栈、Rules of Hooks、重复的 React 副本和 react-dom 版本不匹配,修复 React invalid hook call 错误。

OpenReplay Team · Sep 3, 2026 · 6 min read

在 AI 编码 Agent 中使用 Git Worktrees

使用 git worktrees 配合 AI 编码代理,隔离分支、避免文件冲突,并安全管理端口、数据库和合并。

OpenReplay Team · Sep 3, 2026 · 5 min read

Git Worktree 详解:何时使用、为何使用

解析 Git worktree:与 stash 和第二个克隆的区别、适用场景,以及管理它们的常用命令。

OpenReplay Team · Sep 2, 2026 · 5 min read

不稳定网络下的 3 种 SSH 替代方案

比较 Mosh、Eternal Terminal 和 autossh 处理不稳定 SSH 连接:UDP、TCP 重新连接、服务器需求以及 tmux 搭配。

OpenReplay Team · Sep 2, 2026 · 5 min read

如何统计 Token 数量并估算 LLM API 成本

使用 OpenAI、Claude、Gemini 和 Llama 的 tokenizer 精确计算 LLM token,并估算 API 成本、上下文窗口和计费。

OpenReplay Team · Sep 1, 2026 · 6 min read

ECMAScript 2026 新特性一览

ES2026 为 JavaScript 增加七项新功能:Array.fromAsync、Math.sumPrecise、Uint8Array 的 base64 和 hex 方法、JSON.parse 源文本访问,以及 getOrInsert。

OpenReplay Team · Sep 1, 2026 · 6 min read

如何检查 WCAG 的颜色对比度

了解如何用合适的工具和标准检查WCAG颜色对比度,涵盖文本、UI组件、焦点指示和链接。

OpenReplay Team · Aug 31, 2026 · 6 min read

如何在上传前生成图片缩略图

上传前创建图片缩略图:FileReader 预览、Canvas toBlob 缩放、FormData 上传和 multer 字段匹配。

OpenReplay Team · Aug 31, 2026 · 7 min read

VuePress 与 VitePress:该选哪一个?

VuePress 与 VitePress 的 Vue 文档对比:维护状态、开发速度、自定义能力,以及何时选择 VitePress 或 Docusaurus。

OpenReplay Team · Aug 30, 2026 · 6 min read

ORM 何时是错误的工具

当 ORM 成为瓶颈时,可用原生 SQL 处理 N+1 查询、窗口函数、CTE、批量写入和安全的参数化。

OpenReplay Team · Aug 30, 2026 · 6 min read

如何为 Vue 应用添加视频播放功能

为Vue应用添加视频播放:原生HTML5 video、可复用组件或Video.js,支持HLS、字幕、自动播放和清理。

OpenReplay Team · Aug 29, 2026 · 7 min read

超越 commit 和 push 的 5 个 Git 命令

超越 commit 和 push 的 5 个 Git 命令:stash、reflog、cherry-pick、rebase -i 和 bisect,用于恢复、整理历史和查找 bug。

OpenReplay Team · Aug 29, 2026 · 6 min read

We use cookies to improve your experience. By using our site, you accept cookies.