Javascript 如何在web浏览器中测试asm.js的可用性?
假设我有一个asmjs脚本,但在运行脚本之前,我想测试一下浏览器是否支持asm.js。如果为Javascript 如何在web浏览器中测试asm.js的可用性?,javascript,asm.js,Javascript,Asm.js,假设我有一个asmjs脚本,但在运行脚本之前,我想测试一下浏览器是否支持asm.js。如果为false,则显示一条消息,指示浏览器已过时或类似情况,否则,执行脚本 我们能否以某种方式利用“使用asm”的思想来检测web浏览器是否支持asm.js function MyAsmModule() { "use asm"; // module body } 令人悲哀的是,似乎没有真正可靠的方法来检测对asm.js的浏览器支持 运行此段将产生错误,但不是可捕获的错误: 试试看{ (函数
false
,则显示一条消息,指示浏览器已过时或类似情况,否则,执行脚本
我们能否以某种方式利用“使用asm”
的思想来检测web浏览器是否支持asm.js
function MyAsmModule() {
"use asm";
// module body
}
令人悲哀的是,似乎没有真正可靠的方法来检测对asm.js的浏览器支持 运行此段将产生错误,但不是可捕获的错误:
试试看{
(函数MyAsmModule(){“使用asm”})();
console.log(“asm.js OK”);
//现在,点击F12打开浏览器控制台,只需找到一个TypeError,该错误表示:
//“asm.js类型错误:应为return语句”
}
捕捉(错误){
//永远不会显示。。。
log(“不支持asm.js”);
}
可能不可行,为什么要检测?如果它不受支持,它可能会运行得稍慢。不,但我认为您可以测试是否支持ArrayBuffers。。。如果(!“ArrayBuffer”在此)抛出错误(“不支持”);也许您可以获得浏览器版本并将其与此进行比较:对另外两个相同的函数进行基准测试,看看其中一个是否更快。