Javascript navigator.deviceMemory在远程Web服务器上未定义,但在从.html文件使用时有效

Javascript navigator.deviceMemory在远程Web服务器上未定义,但在从.html文件使用时有效,javascript,Javascript,我有一个问题-当我做console.log(navigator.deviceMemory+“GB RAM”)时本地,它可以正常工作 当我在我的web应用程序上运行JS时,它不起作用 我的输出是: 未定义 以下是我在开发人员网站上的代码: function checkRequirements() { var cpu = window.navigator.hardwareConcurrency; var ram = window.navigator.deviceMemory;

我有一个问题-当我做
console.log(navigator.deviceMemory+“GB RAM”)时本地,它可以正常工作

当我在我的web应用程序上运行JS时,它不起作用

我的输出是:

未定义

以下是我在开发人员网站上的代码:

function checkRequirements()
{
    var cpu = window.navigator.hardwareConcurrency;

    var ram = window.navigator.deviceMemory;

    if (cpu > 2 && ram > 2)
    {
        console.log("yes");
    }
    else
    {
        console.log(ram);
    }
}
另外,我是JS的新手,这是我用它做的第一件事

在谷歌上找不到关于这个确切问题的更多信息

谢谢

编辑:
因此,我在我管理的另一个网站上使用了这段代码,并且成功了。这是一个有生命的环境。我不知道为什么这在我的开发环境中不起作用。显示它应该在Chrome中工作。我迷路了,迷茫了。我现在就不谈这个了。感谢大家的帮助。

导航器。deviceMemory
仅受Chrome、Opera和Android移动浏览器的支持。它在其他任何地方都没有定义。因此,除非服务器代码在Chrome中运行(不太可能),否则您不能在Chrome中使用它


这个网站是一个很有用的工具,可以查看哪些浏览器支持不同的代码:

所以它看起来像是一个安全功能-
导航器。deviceMemory
需要HTTPS才能工作,这就是为什么它不适合我的原因。您可以在GitHub上亲自看到这一点


谢谢大家的帮助,看来我无法在我的开发环境中测试这些API。

这些API不受广泛支持。@Pointy,但它可以从我桌面上的html文件中工作,但远程服务器上托管的相同代码不起作用。我在对下面答案的评论中提到了这一点,但我不明白这两者有什么不同……您没有发布足够的代码,任何人都无法真正提供帮助。如何将JavaScript代码导入HTML?你百分之百确定它工作正常吗?@Pointy是的,我百分之百确定它工作正常。navigator.hardwareConcurrency可以工作,但DeviceNavigator.deviceMemory不能。我只是很困惑,这是如何从我桌面上的html文件,而不是当我去一个网站做它…对不起,你说的服务器代码在chrome上运行是什么意思?我正在两个地方用chrome加载页面。我不明白它在Chrome本地是如何工作的,但当我加载网页时,它会变得不确定吗?我很没经验,所以如果我听起来像个白痴,请原谅我。此外,我还喜欢我如何判断设备电池是否正在充电,而不是它有多少内存……他的意思是,在你的电脑上,你可以在浏览器(例如Chrome)中运行你的网站。Chrome具有
navigator.deviceMemory
属性。您的服务器不是浏览器,因此不具有该属性。因此,在服务器中访问该属性将返回
未定义的
,因为它根本没有该属性。如果你仔细想想,这是有道理的。在浏览器中,它会告诉您正在使用的设备(笔记本电脑、平板电脑等)的内存。服务器未使用任何这些设备。您可以将
deviceMemory
值发送到服务器。@EmielZuurbier好的,这有点道理。我想,自从从URL和HTML文档获得了
navigator.hardwareConcurrency
后,意味着我的代码出了问题。谢谢,我开始觉得这里有误会了。你在哪里托管你的网站?此代码是在服务器上还是在发送到客户端的HTML文件中?代码托管在开发服务器上,没有https。根据navigator.devicememory的github文档,它确实需要HTTPS才能工作。我觉得这很奇怪,因为直接从html文档启动时,代码可以工作。无论如何,谢谢你的帮助。