出于好奇,我想看看使用以下代码的不同访问者支持WebGL的上下文:
var e = document.createElement('canvas');
var c = ['webgl','ms-webgl','experimental-webgl','moz-webgl'];
for (var y = -1, len = c.length; ++y < len;)
{
try {if (e.getContext(c[y])) {/*do-a-jig*/ break;}} catch(e) {}
}
不幸的是,这造成了一个很难重现web开发人员控制台中报告的bug:
WebGL警告:该主体的活动WebGL上下文超过16个,丢失了最近使用最少的一个。
因此,简单地说,在测试了上下文之后,我如何删除该上下文以避免产生此错误?
发布于 2017-12-17 14:37:48
您可以尝试这样的方法:(未经测试)
var e = document.createElement('canvas');
var c = ['webgl','ms-webgl','experimental-webgl','moz-webgl'];
var found = '';
for (var y=0; y<c.length; y++)
{
try {
var ctx = e.getContext(c[y]);
if (ctx) {
found = c[y];
ctx.getExtension('WEBGL_lose_context').loseContext();
break;
}
} catch(e) { }
}
https://stackoverflow.com/questions/47856034
复制相似问题