【发布时间】:2012-12-09 17:53:22
【问题描述】:
(问题不针对three.js,但我会以它为例)
我最近一直在使用 three.js 开发一个 Web 应用程序界面,并在 WebGL 和 Canvas 渲染器(用于桌面浏览器)之间编写了一些不错的回退。
但现在问题变成了如何正确检测设备能力,问题有两个方面:
- 浏览器功能(静态功能,如 webgl/canvas):这在网络社区中通过简单的功能检测在很大程度上得到了解决。
- 设备能力:这是最难的部分,如果无法直接访问设备的硬件信息,我们需要一些方法来判断我们是否应该回退到对硬件要求较低的代码。
一个值得注意的例子:Firefox 移动/Opera 移动声称支持 WebGL,但存在错误或受设备硬件限制。
目前我想出的一些解决方法:
- 使用通用功能作为性能指标 - 例如,触摸设备的硬件功能通常不太强大。缺点:它不是面向未来的。
- 将已知有问题的浏览器/设备列入黑名单 - UA 嗅探将不可避免,而且难以维护。
- 性能测试 - 那么问题来了,除了运行代码和测量帧率之外,还有更好的选择吗?
或者也许不必这么难,还有其他建议吗?
【问题讨论】:
标签: javascript performance html cpu three.js