2017-07-19 31 views
15

Bir asmjs komut dosyası var, ancak betiği çalıştırmadan önce, tarayıcının asm.js destekleyip desteklemediğini test edip görmemeyi isterim. Bu, false ise, tarayıcının eski olduğunu veya böyle bir şey olduğunu belirten bir ileti görüntüler, aksi halde komut dosyasını yürütün.Bir web tarayıcısında asm.js'nin kullanılabilirliğini nasıl test edebilirim?

Bir web tarayıcısının asm.js destekleyip desteklemediğini algılamak için "use asm" fikrini bir şekilde kullanabilir miyiz?

function MyAsmModule() { 
    "use asm"; 
    // module body 
} 
+4

Yapılması mümkün olmayan https://github.com/kangax/compat-table/issues/447 –

+0

Bunu neden anlamak istersiniz? Desteklenmiyorsa biraz daha yavaş çalışabilir. –

+0

@Jonasw Tarayıcı, örneğin ArrayBuffer'ı desteklemese bile işe yarayacağını düşünüyor musunuz? –

cevap

4

Bu üzücü durum, asm.js.'nin tarayıcı desteğini algılamanın gerçek bir güvenilir yolu olmadığı görünmektedir.

bir hata üretecektir bu segmenti Running

, ancak bir catchable tek:

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."); 
 
}

Bu istemeyerek belki kombine, istemci dize denetimi dönmek zorunda durumlarda biridir Başka bir özellik ile uğraşırken determine which browser and version kontrol ediyor.

bu bilgiler daha sonra da bu tarihten, tarayıcılar ve versiyonları destekler (courtesy of caniuse.com) asm.js sonrasında bu listeyi kontrol elde edildiğinde: beri ve dahil

Versiyon numarası - Ben de çok ile tarayıcılar dahil bilgileri gibi küçük bir kullanıcı tabanları yanı bunlar için kullanılabilir:

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 derleme ama performans Krom 28 iki katına Ahead-Of-Time desteklemiyor"

İlgili konular