javascript – 有没有办法了解“平台”访问网页的硬件资源?

我想从网页上找出浏览器的硬件资源,或至少粗略估计.

即使通过像Modernizr这样的工具在浏览器中检测到现代技术(如csstransforms3d,csstransitions,requestAnimationFrame)的存在,您无法确定是否激活一些性能耗费的选项(如花哨的3D动画)或避免它.

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

解决方法

通常,关于用户系统的可用(到网页)信息非常有限.

我记得a discussion of adding one such API to the web platform(navigator.hardwareConcurrency – 可用内核的数量),其中特征的对手解释了反对它的原因,特别是:

>应用程序可用的内核数量取决于其他工作负载,而不仅仅是可用的硬件.这不是常数,用户可能不愿意让您的应用程序使用可用硬件资源的全部(或任何固定部分);
>帮助客户“fingerprinting”.
>对于今天的具体情况太多了.该网页旨在在许多设备上工作,其中一些设备今天甚至不存在.

这些参数对于查询特定硬件资源的其他API也是有效的.您想要检查哪些特定的用户系统是否能负担得起运行“花哨的3D动画”?

作为用户,如果您的站点/应用程序的核心功能不需要,我宁可不使用额外的资源(如花哨的3D动画).令人伤心的是,由于缺乏硬件资源,我每几年都要购买一台新的笔记本电脑,以便能够继续使用我目前的工作流程,而不会慢慢运行.

也就是说,这是你可以做的:

>为网站“完整”版本遇到问题的用户提供后备链接.

>如果这对您来说足够重要,您可以首先运行简短的基准测试来检查性能,如果您怀疑系统资源短缺,则可以回到网站资源较少的版本.

>您可以通过检查操作系统,屏幕尺寸等来定位具体的高端平台.

>本文提到手机上的这种方法http://blog.scottlogic.com/2014/12/12/html5-android-optimisation.html

> WebGL通过webgl.getParameter()提供有关渲染器的一些信息.参见此页面,例如:http://analyticalgraphicsinc.github.io/webglreport/

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...