有没有办法了解"平台"访问网页的硬件资源?

Mil*_*vić 10 javascript css performance html5 animation

我希望能够从网页上了解浏览器的硬件资源,或者至少是一个粗略的估计.

甚至当你发现现代技术的存在(例如csstransforms3d,csstransitions,requestAnimationFrame)在浏览器中通过类似的工具Modernizr,你不能确定是否启动一些性能消耗选项(如花式3D动画)或避免它.

我问,因为我有很多经验,浏览器是现代的(最新的Chrome或Firefox支持所有很酷的技术)但操作系统的CPU,GPU和可用内存只是灾难性的(带有集成GPU的32位Windows XP)因此,纯粹基于检测到的浏览器上限的决定是不好的.

Nic*_*lay 1

一般来说,有关用户系统的可用(对于网页)信息非常有限。

我记得有一次关于向 Web 平台添加一个这样的 APInavigator.hardwareConcurrency可用核心数量)的讨论,该功能的反对者解释了反对它的原因,特别是:

  • 应用程序可用的核心数量取决于其他工作负载,而不仅仅是可用的硬件。它不是恒定的,用户可能不愿意让您的应用程序使用所有(或您选择的任何固定部分)可用的硬件资源;
  • 帮助对客户端进行“指纹识别” 。
  • 过于注重当今的具体情况。网络被设计为可以在许多设备上运行,其中一些设备今天甚至还不存在。

这些参数也适用于查询特定硬件资源的其他 API。您具体想检查什么来确定用户的系统是否能够运行“精美的 3D 动画”?

作为用户,如果您的网站/应用程序的核心功能不需要额外的资源(例如精美的 3D 动画),我宁愿您不要使用它。确实令人难过的是,我必须每隔几年购买一台新笔记本电脑,以便能够继续我当前的工作流程,而不会由于缺乏硬件资源而运行得很慢。

也就是说,您可以执行以下操作:

  • 为使用网站“完整”版本时遇到问题的用户提供后备链接。
    • 如果这对您来说足够重要,您可以首先运行简短的基准测试来检查性能,如果您怀疑系统资源不足,则可以回退到资源消耗较少的站点版本。
  • 您可以通过检查操作系统、屏幕尺寸等来定位特定的高端平台。
  • WebGL 通过 提供一些有关渲染器的信息webgl.getParameter()。例如,请参阅此页面: http: //analyticalgraphicsinc.github.io/webglreport/