令人悲傷的情況是,似乎沒有真正可靠的方式來檢測瀏覽器對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的情況下也能正常工作嗎? –