700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > unityloader.js php WebAssembly + Forge实战 - 整合Forge AR/VR ToolKit + Unity场景至前端框架...

unityloader.js php WebAssembly + Forge实战 - 整合Forge AR/VR ToolKit + Unity场景至前端框架...

时间:2020-07-06 11:48:23

相关推荐

unityloader.js php WebAssembly + Forge实战 - 整合Forge AR/VR ToolKit + Unity场景至前端框架...

在浏览器环境下,解释运行JavaScript脚本实现高阶功能早已是家常便饭,然而,Web前端日新月异的需求已逐渐无法完全依赖JavaScript实现。幸运的是,打破瓶颈的新技术已逐渐成熟,它就是WebAssembly。

什么是WebAssembly

WebAssembly是一项神奇的技术,简而言之就是一种底层的类汇编语言,其编译后的二进制模块wasm可在浏览器中运行以接近原生的性能运行CC++、C#、Java、GO、PHP、Rust等等语言的代码!自颁布、初正式发布最小功能版本以来,WebAssembly迅速开始盛行,并已得到主流浏览器的广泛支持,详细支持情况可以参见下图或MDN:

(数据采于-01-25)

需要强调的是:WebAssembly并不旨在取代JavaScript或任何现有的H5/ES6技术,而是与他们共存 - 我们耳熟能详的WebGL、Web Audio等组件都是WebAssembly模块在浏览器端的运行时,在浏览器端实现所需功能

优势与异同

那么问题来了 - WebAssembly究竟和asm.js、Dart等类似技术有何不同?我们早已可以通过Emscripten编译asm.js在浏览器中跑c/c++了,为什么还需要WebAssembly呢?相比之下,WebAssembly主要具备以下优势:

WebAssembly模块不论在加载速度和性能上都有明显优势 - 它以二进制码的形式在浏览器中原生运行,无需像asm.js那样将原始语言编译成JavaScript,远超JavaScript引擎解释脚本的运行速度,即便首屈一指的Chrome V8有JIT加持也无济于事。

WebAssembly并不是基于现有组建的扩展,而是一个Web开发新特性/标准,它有独立的路线图,不断有新特性加入进来。

不受asm.js等技术在AOT等层面的限制,特性拓展潜力极大,应用场景广泛,详见底部延伸阅读部分的介绍。

编译与运行

那么如此神奇的技术究竟

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。