什么是WebAmblyWASM·你用任何你喜欢的编程语言来开发软件·WASM虚拟机什么是它

什么是WebAssembly(WASM)

WebAssembly,简称WASM,是一项很酷的技术,它能让网络上的应用程序跑得超级快,就像它们是在你的电脑上直接运行一样。这听起来是不是很神奇?WASM把超高效的代码和非常小的文件结合起来,让大型的应用程序可以快速、平稳地在网络上运行。

WASM虚拟机:什么是它?

想象一下,你用任何你喜欢的编程语言来开发软件,然后在Web浏览器里直接给用户使用,而且完全不需要安装。这就是WASM能做的!它实际上是一个运行在所有现代浏览器上的虚拟机。以前,我们只能在浏览器里运行JavaScript。现在,有了WASM,我们甚至可以用JavaScript之外的编程语言来运行代码。

开发者可以把他们的原生应用程序搬到网上,直接在浏览器里运行,就像在电脑上一样。他们甚至不需要自己写WASM代码,只需要用其他语言写代码,然后编译成WASM格式就可以啦!比如,用Unity和C#做个游戏,然后编译成WASM,就可以在浏览器里玩了。

WebAssembly的工作原理

WebAssembly是由W3C开发的,它就像一个“编译的目标”。开发者不用直接写WASM代码,他们可以用自己熟悉的语言写,然后编译成WASM的字节码。这些字节码在浏览器里运行,然后被转换成高效的机器代码。

WASM的设计是为了比JavaScript更快地加载、分析和执行。虽然下载WASM模块可能会有一点开销,但对于中小型项目来说,WASM的性能要比JavaScript好很多。

WASM还有一个安全沙盒模型,这意味着应用程序不能直接访问沙盒外的任何内容,甚至不能访问网页上的DOM。如果应用程序需要与其他系统部分交互,就需要用到WASI(WebAssembly系统接口)来提供文档、网络、系统时钟等服务。

除了在浏览器中使用,WebAssembly还可以在服务器上运行,就像Node.js一样。

延伸阅读:code/key定义

code代表用户按下的物理键,这个值不会因为键盘布局或者是否按下了Modifier键而改变。而key代表用户按下键后生成的字符,这个字符会受键盘布局、语言、是否按下了Modifier键以及系统级别的键盘映射等因素影响。

| 特征 | 说明 | | ---------- | ------------------------------------------------------------ | | code | 用户按下的物理键值,不受键盘布局和Modifier键影响。 | | key | 用户按下键后生成的字符,受键盘布局、语言、Modifier键和系统映射等因素影响。 |