为什么我们应该更喜欢 document.visibilityState 而不是 document.hidden?

Why are we supposed to prefer document.visibilityState to document.hidden?

我正在查看 document.hidden specs here 以了解 hidden 究竟意味着什么:

  1. If steps to determine the visibility state return visible, then return false. 2. Otherwise, return true.

Note

Support for hidden attribute is maintained for historical reasons. Developers should use visibilityState where possible.

visibilityState 是另一个 属性,它可以 return 三个字符串之一:'visible''hidden''prerender'

document.hidden(如上述规则所示)returns true 用于 'visible'false 用于所有其他字符串。

我对这张纸条很好奇。为什么他们说开发人员应该更喜欢 visibilityState 而不是 hidden

仅仅是因为 visibilityState 给了你更多的“权力”(回复:粒度),因为它更具体地说明了文档所处的状态,而 hidden 通过关闭四个状态变成两个状态,“隐​​藏”或“不隐藏”?

我知道这可能只有编写规范的人才能回答,但也许他们在这里四处游荡。


抢注: 我猜这可能会被关闭为“基于意见”,因为它会吸引自以为是的答案,虽然它肯定会吸引这样的答案,但编写规范的人可以客观地回答这个问题,所以我我会抓住机会的。

我没有写规范,但我假设你是正确的——visibilityState 的引入使 hidden 过时了。 hidden 没有做 visibilityState 做得更好的事情。考虑到他们坚持要您使用后者,它很可能会被弃用。

由于历史原因维护hidden的通知已在this PR中删除。

有一些关于此更改的讨论here