【发布时间】:2017-05-20 00:57:56
【问题描述】:
是否有任何选项可以在视图功能中检测用户来自的浏览器是否与 webGL 兼容?
【问题讨论】:
标签: django python-2.7 django-views webgl
是否有任何选项可以在视图功能中检测用户来自的浏览器是否与 webGL 兼容?
【问题讨论】:
标签: django python-2.7 django-views webgl
检测 WebGL 是在前端使用 JavaScript(参见 Proper way to detect WebGL support?),所以我认为没有办法在 Django 视图中直接在后端执行此操作。
您可以做的是在用户访问的第一个页面上使用 JavaScript 执行检测,并使用 AJAX 将结果存储在服务器端变量中,您可以在后续请求中使用该变量来决定是否使用 WebGL 功能。
【讨论】:
扩展 voodoo 的答案,这里是用于快速确定客户端是否支持 webgl 的 javascript
var canvas = document.getElementById("canvas");
var names = ["webgl", "experimental-webgl", "webkit-3d", "mozwebgl"];
var webgl_supported = false;
for(var i in names) {
try {
gl = canvas.getContext(names[i], { });
if (gl && typeof gl.getParameter == "function") {
webgl_supported = true;
break;
}
} catch(e) { }
}
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "/webgl_enabled_handler");
xmlhttp.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xmlhttp.send(JSON.stringify({webgl_enabled: webgl_supported }));
这假设在您的 html 页面/模板中有一个 id 为“canvas”的 canvas 元素。
页面加载后,生成的 json 将作为 POST 请求发送到 django
不幸的是,我怀疑是否有办法通过来自 django 的一般 GET 请求来确定 webgl 支持
【讨论】: