那个好过头了的优化:为什么我们的推送通知只在你不看时才有用
来源:dev.to — 2026-08-22
📋 概述
作者为实时社交应用 ShelfTalk 添加了一个自认为聪明的优化:利用 Page Visibility API 的 document.hidden 属性,在用户当前正看着网页标签时抑制桌面推送通知,避免冗余打扰。然而上线后用户不断反馈漏掉了重要私信与群组提及。排查发现 document.hidden 只有在页面完全被遮挡时才为 true,而很多用户把标签页放在第二块显示器上、同时在其他应用里工作,此时标签页对操作系统仍处于可见状态,于是通知被静默丢弃。这个 bug 提醒我们,技术与文档里说的"可见"与用户真正在注意,完全是两回事。
🔑 核心要点
- 用 document.hidden 抑制通知的"优化"上线后,导致用户漏掉重要私信与群组提及。
- 真相是 document.hidden 仅当页面完全隐藏(后台标签或最小化窗口)时才为 true。
- 标签页在第二显示器上可见时,即使主屏在忙别的应用,document.hidden 也是 false,通知被静默丢弃。
- 作者在自己机器上测试一切正常,因为他的单屏使用场景与用户"双屏、侧屏挂标签"的真实场景完全不同。
💡 金句
document.hidden 和"用户真的在注意"是两件完全不同的事。
👍 0
👎 0
← 返回 dev.to 首页