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

Javascript 为什么我们更喜欢document.visibilityState而不是document.hidden?,javascript,specifications,Javascript,Specifications,我在查看规范,以了解隐藏的确切含义: 如果确定可见性状态的步骤返回可见,则返回假。 2.否则,返回true 注 由于历史原因,对隐藏属性的支持得以保持。开发人员应尽可能使用visibilityState 是另一个可以返回三个字符串之一的属性:'visible'、'hidden'或'prerender' document.hidden(如上述规则所示)对于“可见”返回true,对于所有其他字符串返回false 我对这张纸条很好奇。为什么他们说开发者应该更喜欢visibilityState而不是hi

我在查看规范,以了解隐藏的确切含义:

  • 如果确定可见性状态的步骤返回
    可见
    ,则返回
    。 2.否则,返回
    true
  • 由于历史原因,对
    隐藏属性的支持得以保持。开发人员应尽可能使用visibilityState

    是另一个可以返回三个字符串之一的属性:
    'visible'
    'hidden'
    'prerender'

    document.hidden
    (如上述规则所示)对于
    “可见”
    返回
    true
    ,对于所有其他字符串返回
    false

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

    这仅仅是因为
    visibilityState
    为您提供了更多的“能力”(re:granularity),因为它更具体地描述了文档所处的状态,而
    hidden
    通过将四种状态转换为两种状态“hidden”或“not hidden”(隐藏)来简化文档

    我知道这可能只能由编写规范的人负责,但也许他们在这里爬行


    先发制人的说明:
    我猜这可能会以“基于意见”的方式结束,因为它会吸引固执己见的答案,虽然它肯定会吸引这样的答案,但编写规范的人可以客观地回答这一点,所以我会抓住机会。

    我没有编写规范,但是我想你是对的,
    visibilityState
    的引入使得
    hidden
    过时了<代码>隐藏
    不会做任何不好的事情。鉴于他们坚持你使用后者,它很可能会遭到反对。

    由于历史原因而保留的
    隐藏的通知已在中删除


    对此更改进行了一些讨论。

    作为此问题的更新,您提到了四个
    visibilityState
    可能值,我想指出的是
    'Unload'
    值已被弃用,因此此属性只剩下三个可能值。@RobinBastiaan谢谢,编辑了一些讨论:@kaido谢谢!似乎此关于不使用隐藏的说明已被删除。你想发布一个答案吗?