WebAssembly'ın tüm yeni ana tarayıcılara gelmesiyle ilgili destekle, web sitemi ziyaret eden mevcut tarayıcının bunu destekleyip desteklemediğini nasıl kontrol edebilirim?Bir tarayıcının WebAssembly destekleyip desteklemediğini nasıl kontrol edebilirim?
5
A
cevap
6
Eğer WebAssembly varlığını tespit edebilen birkaç yolu vardır. Temel olan, 'un global kapsamda "object"
türünde olup olmadığını kontrol etmektir, ancak "genel kapsam" farklı JavaScript ortamlarında (ana tarayıcı iş parçacığı, çalışan, node.js) almak için zor bir şeydir.
Bunu yapmak teknik olarak yeterli değildir, çünkü WebAssembly desteğine sahip olabilirsiniz, ancak CSP (ve tam olarak ne için CSP izinlerinin standartlaştırılmadığı) nedeniyle gerçekten derleyemez veya başlatamazsınız. aşağıdaki gibi
bir muhafazakar çek olabilir:
const supported = (() => {
try {
if (typeof WebAssembly === "object"
&& typeof WebAssembly.instantiate === "function") {
const module = new WebAssembly.Module(Uint8Array.of(0x0, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00));
if (module instanceof WebAssembly.Module)
return new WebAssembly.Instance(module) instanceof WebAssembly.Instance;
}
} catch (e) {
}
return false;
})();
console.log(supported ? "WebAssembly is supported" : "WebAssembly is not supported");
O yapar: geçerli kapsamda erişilebilir
- kontrol
WebAssembly
olsun. Küresel değilse gerçekten umursamıyoruz! - biz aslında burada kullanmayın ama asenkron çünkü hangi aslında örneğini kullanmak isterdim ve ana iş parçacığı veya kapalı büyük modüller işleyebilir
.instantiate
işlevi olup olmadığını bakın. - Mümkün olan en küçük modülü (sihirli sayı
'\0', 'a', 's', 'm'
ve bunu takibenuint32
olarak kodlanmış sürüm numarası 1) eşzamanlı olarak derlemeye çalışın ve birWebAssembly.Module
çıktısına bakın. - Son olarak, bu modülü eşzamanlı olarak başlatmayı deneyin ve bunun bir
WebAssembly.Instance
olduğunu doğrulayın.
Bu biraz fazla ama ne olursa olsun çalışması gerekir: kodu (ana iş parçacığı, işçi, node.js) çalıştıran yerlerde
- .
- CSP nasıl standart hale getirilir.
İlgili konular
- 1. Tarayıcının HTML5 zamanlayıcıyı destekleyip desteklemediğini kontrol edin
- 2. Bir tarayıcının MJPEG'i destekleyip desteklemediğini nasıl anlayabilirim?
- 3. Tarayıcının HTML5 dosya yükleme özelliğini (FormData nesnesi) destekleyip desteklemediğini nasıl kontrol edebilirim?
- 4. PHP: Tarayıcının javascript'i PHP'de destekleyip desteklemediğini nasıl belirleyebilirim?
- 5. Bir iOS aygıtının bulanıklık efekti destekleyip desteklemediğini nasıl tespit edebilirim?
- 6. Bir yazı tipinin belirli bir stili destekleyip desteklemediğini nasıl kontrol edebilirim
- 7. g ++ lambda işlevlerini destekleyip desteklemediğini nasıl kontrol edersiniz?
- 8. Tomcat'imin Servlet 3.0'ı destekleyip desteklemediğini nasıl anlarım?
- 9. SQL Server'ın 'AT TIME ZONE' özelliğini destekleyip desteklemediğini nasıl programlayabilirim?
- 10. Webdriver - Tarayıcının hala mevcut olup olmadığını nasıl kontrol edebilirim?
- 11. Bir web tarayıcısında asm.js'nin kullanılabilirliğini nasıl test edebilirim?
- 12. Bir http hizmeti bir piton 3 script kullanarak HTTP/2 destekleyip desteklemediğini kontrol çalışıyorum piton 3
- 13. Android cihazının openGL ES 2.0 destekleyip desteklemediğini kontrol etmenin bir yolu var mı?
- 14. Geçerli SQL Server sürümünün sütun deposu dizinlerini destekleyip desteklemediğini sorgulama
- 15. nasıl kontrol edebilirim?
- 16. Capybara ile, şu anda kullanılan sürücünün JavaScript'i destekleyip desteklemediğini nasıl anlarım?
- 17. nasıl kontrol edebilirim?
- 18. Bir Android telefonun arama kaydında sesli posta entegrasyonunu destekleyip desteklemediğini tespit etmenin bir yolu var mı?
- 19. Android'de çalışan bir uygulamanın olup olmadığını nasıl kontrol edebilirim?
- 20. Farklı sayıcılarda bir değişkeni nasıl kontrol edebilirim
- 21. CVS'den tek bir dosyayı nasıl kontrol edebilirim?
- 22. Bir dosya olup olmadığını nasıl kontrol edebilirim?
- 23. bir NaN hatasının değerini nasıl kontrol edebilirim
- 24. XSLT'de bir dosya varlığını nasıl kontrol edebilirim?
- 25. svn bağlantımı nasıl kontrol edebilirim?
- 26. Tarayıcı desteğini kontrol ederken geçersiz iade bildirimi
- 27. Dosyanın var olup olmadığını nasıl kontrol edebilirim?
- 28. Özellik olup olmadığını nasıl kontrol edebilirim?
- 29. Fonksiyonun kısmi olup olmadığını nasıl kontrol edebilirim?
- 30. Kare hızını Qt 3D'de nasıl kontrol edebilirim?
Muhtemelen 'TRUE değil, örneğini dönmek istiyorum. –
@AndreasRossberg 'instanceof', –
@AyushGupta 'yı döndüren bir operatördür, oh, haklısınız, çünkü pencere kenarlığı tarafından mükemmel bir şekilde kesildiği için eksiktim. –