如果你在开发圈里潜伏了足够长的时间,你可能听说过关于 WebAssembly(或 Wasm,因为开发者喜欢缩写词,就像我喜欢的那样)咖啡)。
它曾经被誉为“下一件大事”,这是一款闪亮的新工具,承诺将您的浏览器从一个不起眼的文档查看器转变为一个成熟的超级英雄。好吧,WebAssembly 已经存在几年了,你猜怎么着?它仍然在这里,兑现着这一承诺。 JavaScript 并没有退居二线,但 Wasm 一直在后台默默地做着一些繁重的工作,它已经成为 Web 性能游戏中坚实的合作伙伴。
想象一下:JavaScript 和 C 出去喝酒,深入讨论速度和效率,然后繁荣 - WebAssembly 诞生了? Wasm 是一种低级的、类似汇编的语言,可以在浏览器中运行,旨在使 Web 应用程序更快、更高效,并且能够运行您从未认为浏览器可以处理的事情。可以将其视为您的浏览器,其连帽衫下有一个六块腹肌,准备好提升比 JavaScript 所能承受的更多的能力。
用简单的英语? WebAssembly 是一种编译代码格式,执行速度几乎与本机机器代码一样快,它旨在与 JavaScript 一起工作,而不是取代它。所以不,你不必将所有来之不易的 JS 技能都扔进垃圾桶。
网络非常适合在 Twitter 上展示猫模因和无限滚动,但从历史上看,它在处理任何过于激烈的事情方面表现不佳 - 比如 3D 游戏、视频编辑或实时模拟。这就是 Wasm 介入的地方,看起来像一个超级英雄,准备将你的代码从低效的魔掌中拯救出来?
以下是 WebAssembly 带来的功能:
首先,你不必与 JavaScript 分手。 Wasm 玩得很好吗?将 Wasm 视为 JavaScript 的肌肉伙伴,当 JS 在运行几个循环后变得喘不过气来时,它可以帮助解决繁重的工作。
事实上,WebAssembly 确实可以让你的 JS 代码更好。如果您有一些对性能要求较高的任务(例如复杂的计算、文件解析或视频渲染),您可以将它们交给 Wasm,并让它处理繁重的工作,而 JS 则专注于其通常的 DOM 操作魔法。
JavaScript 和 WebAssembly 之间的关系就像超级英雄团队一样,聪明的人 (JS) 和强壮的人 (Wasm) 共同努力拯救世界。两者都没有被取代——它们只是在一起变得更好。比如花生酱和果冻。或者制表符和空格(开玩笑,别引发口水战)。
第一步:呼吸。 Wasm 可能听起来很吓人,但它并不难使用 - 特别是如果您曾经使用 C、C 或 Rust 等编译语言编写过。如果你还没有?好吧,恭喜! WebAssembly 是一个很好的借口,可以帮助您最终学习一直回避的令人生畏的语言。
第2步:获取可以生成Wasm的编译器。有很多工具可以获取您的代码(C、C、Rust 等)并将其编译为 Wasm。 Emscripten 是 C/C 项目的热门选择,而 wasm-pack 非常适合 Rust 项目。
第三步:将其放入浏览器中。将代码编译到 WebAssembly 后,您可以将其加载到浏览器中并开始利用这些令人愉悦的性能提升。不过,Wasm 并不引人注目——它旨在与 JavaScript 协调工作。您的 JavaScript 代码将调用 WebAssembly 函数,就像它们只是该组的一部分一样。没有剧情。
第四步:利润。或者,至少,坐下来享受观看您的网络应用程序突破性能瓶颈的过程,就像它有一个氮气按钮一样。
听着,我们并不是说 WebAssembly 会让 JavaScript 过时,或者你的浏览器会因为运行近乎本机代码的强大力量而开始自发燃烧。但是……也许?
实际上,WebAssembly 的未来更多的是补充现有的 Web 生态系统,而不是取代任何东西。这是一个工具。是的,这是一个强大的工具 - 但它只是为了提供帮助,而不是为了推翻 JavaScript 君主制。虽然 Wasm 成为整个网络的主流可能还需要几年的时间,但它已经在游戏、多媒体应用程序甚至区块链领域掀起了波澜。是的,区块链。因为显然,没有 Wasm 不会去的地方。
如果 WebAssembly 是一个人,那么这个朋友就会突然出现,帮助你搬动沉重的家具,然后离开时不问披萨。它在这里做肮脏的工作:繁重的计算、性能优化,以及将浏览器转变为一个强大的引擎,其功能比我们想象的要多得多。
因此,如果您希望突破 Web 应用程序的极限,或者只是想让您的浏览器感觉像是经过了一些超级英雄训练,那么 WebAssembly 会为您提供支持?请记住,强大的功能会带来出色的编译时间?.
嗨,我是programORdie,这是我的第一篇真正的文章,我希望得到您的反馈,所以请随时发表评论!
您还可以查看我的项目或访问 GitHub:programORdie2.
希望您喜欢这篇文章,祝您有美好的一天!?
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3