令人悲伤的情况是,似乎没有真正可靠的方式来检测浏览器对asm.js的支持。
运行此部分将产生一个错误,而不是开捕之一:
try {
(function MyAsmModule() {"use asm"})();
console.log("asm.js OK");
// Now, hit F12 to open the browser console just to find a TypeError that states:
// "asm.js type error: expecting return statement"
}
catch(err) {
// will never show...
console.log("asm.js not supported.");
}
这是那些案件之一,你不情愿不得不转向客户端串检查,或许与联合其他功能检查到determine which browser and version你正在处理。
当获得这些信息,然后检查作为该日期的该名单以下浏览器和版本支持(courtesy of caniuse.com)asm.js,:
版本号是因为与包括 - 我包括也非常的浏览器小的用户群作为资料可为这些以及:
Firefox : v. 22
Chrome : v. 28 (*)
Edge : v. 13
Opera : v. 15 (*)
Android browser : v. 56 (*)
Opera mobile : v. 37 (*)
Chrome for Android : v. 59 (*)
Firefox for Android : v. 54
Samsung internet : v. 5 (*)
QQ browser : v. 1.2 (*)
Baidu browser : v. 7.12 (*)
(*):“Chrome不支持名列前茅的时间编辑而成,但是表现在Chrome 28加倍”
来源
2017-07-27 00:05:22
K3N
可能是不可行的https://github.com/kangax/compat-table/issues/447 –
你为什么要检测?如果不支持,它可能会运行得慢一些。 –
@Jonasw你认为它即使在浏览器不支持ArrayBuffer的情况下也能正常工作吗? –