我正在创建一个支持three.js的网站,在某些浏览器上(我正在看你的firefox),如果其他标签也在运行webGL,我的表现就会断断续续。
我想知道是否有办法找出(在浏览器中)其他标签是否正在使用webgl服务,以便我可以提醒用户。
我感谢所有评论!
答案 0 :(得分:2)
那将违反安全规定,所以不,你不能这样做。
<强>更新强>:
我只想补充一点,你可以加入stats.js(更有可能的是,你需要做一些非常相似的事情来确定stats.js正在做什么来了解的平均值帧速率就像并且在该性能中寻找下降),如果这种情况经常下降,则提醒用户。也就是说,您可能会错误地计算,并且总是有许多无法控制的变量会影响性能。其中大部分都可以通过浏览器重启来解决,特别是Firefox似乎没有在页面重新加载时释放其GPU内存。当内存已满时,性能会严重下降。
在任何情况下,您提供的任何警告都不应该以任何方式侵扰用户。
另请注意,正如我所知,正确编写的WebGL程序(按预期使用requestAnimationFrame
)在选项卡处于后台时不会消耗很多计算资源,尽管这可能因浏览器而异。但是后台的选项卡仍会消耗内存(GPU内存,JavaScript代码和对象)。