这周翻技术周刊,攒了五个体积不大但确实解决问题的工具,都是 MIT 或类似宽松许可,直接能用。
Partytown 1.0:第三方脚本搬到 Web Worker
历经五年测试正式脱离 Beta。原理是把分析、客服、广告这类第三方脚本放到 Web Worker 里执行,主线程不再被它们阻塞,再用代理机制把 DOM 操作同步回来。
对首屏性能的提升很直接,尤其是装了七八个统计脚本的站点。要注意的是它不能解决所有脚本,强依赖主线程 API 的会退化。
once:缓存命令执行结果
重复执行同一条命令时直接返回缓存,瞬间完成。适合那些结果稳定但耗时长的命令,比如依赖树解析、镜像元数据查询。第一次慢,后面几乎零成本。
caniname:查项目名有没有被占
一条命令查项目名在 npm、Netlify 等平台是否已被占用。发开源项目前先跑一次,能省掉改名带来的连锁麻烦。
p-queue 10:零依赖的并发队列
Promise 并发控制,带限流。第十版做成零依赖,适配 EventTarget 与 AsyncLocalStorage。写爬虫、批量调用 API 时的标配,比自己手写信号量可靠。
pg_disorder:故意打乱查询结果
Postgres 扩展,对不带 ORDER BY 的查询随机打乱返回顺序。用途是在测试环境暴露那些依赖默认排序的隐藏 bug。
这个思路很妙。生产环境因为数据量、索引、缓存的关系,往往碰巧返回正确顺序,一到数据迁移或换版本就乱。测试阶段主动打乱,问题会提前暴露。
使用建议
前四个直接装。pg_disorder 只装在测试库,千万别上生产,它会让所有分页查询的结果飘。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。