大家都知道,万维网联盟 W3C 认证的 Web 语言有 HTML、CSS 与 JavaScript,而近日联盟正式宣布 WebAssembly 核心规范(WebAssembly Core Specification)成为官方 Web 标准,这意味着 WebAssembly 成为了第 4 种 Web 语言。

WebAssembly 也叫 WASM,它是为基于栈的虚拟机设计的二进制指令格式,WASM 作为可移植目标,用于编译高级语言(如 C/C++/Rust),从而可以在 Web 上部署高性能客户端和服务器应用,同时它也可以在许多其它环境中使用。

WebAssembly 描述了一种内存安全的沙箱执行环境,该环境甚至可以在现有 JavaScript 虚拟机内部实现。当嵌入到 Web 中时,WebAssembly 将强制执行浏览器的同源和权限安全策略。

WASM 有多种实现,包括浏览器和独立系统,它可以用于视频和音频编解码器、图形和 3D、多媒体和游戏、密码计算或便携式语言实现等应用。目前 1.0 版本的 Wasm 已经支持 Chrome、Firefox、Safari 与 Edge 浏览器。

对于 Web 来说,因为其虚拟指令集设计,WebAssembly 可让加载的页面以本地编译代码运行,从而可以提高 Web 性能。换句话说,WebAssembly 可以实现接近本地的性能,并且优化加载时间,同时最重要的是,它可以作为现有代码库的编译目标。

尽管本地类型数量很少,但相对于 JavaScript 而言,性能的提高大部分归功于其对一致类型的使用。WebAssembly 对编译语言进行了数十年的优化,其字节代码针对紧凑性和流传输进行了优化。在下载其它代码时,网页便可以开始执行。网络和 API 访问通过附带的 JavaScript 库进行,安全模型则与 JavaScript 相同。

W3C 同时公布了 WASM 接下来的开发重点,新特性包括:

  • Threading,线程:Threading 提供了共享内存多线程和原子内存访问的优势。
  • Fixed-width SIMD,固定宽度 SIMD:并行执行循环的向量操作。
  • Reference types 引用类型:允许 WebAssembly 代码直接引用宿主对象。
  • Tail calls,尾调用:直接调用而不使用额外的堆栈空间。
  • ECMAScript module integration,ECMAScript 模块集成:通过将 WebAssembly 可执行文件加载为 ES6 模块来与 JavaScript 进行交互。

此外还有一些一直在跟进的特性,包括垃圾回收、调试接口与 WebAssembly 系统接口(WASI)等。

值得一提的是,上个月 Mozilla、Fastly、Intel 与 Red Hat 宣布成立联合组织 Bytecode Alliance(字节码联盟),该联盟旨在通过协作实施标准和提出新标准,以完善 WebAssembly 在浏览器之外的生态。

WASM 成为 HTML、CSS 与 JS 之后的第 4 门 Web 语言相关推荐

  1. 除了HTML、CSS与JS,现在WASM也是标准Web语言

    大家应该知道,万维网联盟 W3C 认证的 Web 语言有 HTML.CSS 与 JavaScript,而近日联盟正式宣布 WebAssembly 核心规范(WebAssembly Core Speci ...

  2. IE6、IE7、IE8的CSS、JS兼容

    Internet Explorer 6中查看使用 Microsoft JScript 的网页,可能会遇到web浏览器速度较慢的性能问题.原因是如果js脚本同时创建大量变量,jscript引擎执行垃圾收 ...

  3. CSS vs. JS Animation: 哪个更快

    CSS vs. JS Animation: 哪个更快? CSS vs. JS Animation: 哪个更快? 基于JavaScript的动画竟然已经默默地比CSS的transition动画快了?而且 ...

  4. js和html以及css的区别,html、css、js中的区别与关系

    html.css.js中的区别与关系 2020/04/26 作者: 互盟股份 今天小盟给大家分享的是html.css.js中的区别与关系,相信很多人都不太了解,为了让大家更加了解html.css.js ...

  5. php替换时 css中的图片不显示不出来,URL重写:CSS,JS和图像未加载

    我遵循规则 .htaccess Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAM ...

  6. 介绍html CSS和JS的定义或引用

    现在的网页设计,一般采用内容与表现相分离,即网页的组成包含:内容(HTML)+ 样式(CSS) + 脚本(JS) . 浏览器解析原理 服务器接收到HTML->解析HTML结构建DOM树-> ...

  7. 使用Minify合并css和js减少http请求

    一个页面可能包含很多的css和js文件,如果能够合并这些文件,能够大大减少网站的http请求,减少日志的产生和用户体验的提高. Minify就是一个能够合并css或js为一个文件的工具,不但可以合并, ...

  8. 你可能不知道的5种 CSS 和 JS 的交互方式

    翻译人员: 铁锚 翻译日期: 2014年01月22日 原文日期: 2014年01月20日 原文链接:  5 Ways that CSS and JavaScript Interact That You ...

  9. 判断CSS与JS是否加载完毕的方法

    简单而有效的思路:三步走 一.显示默认提示:直接在页面上标识一个友好的提示:例如xxx,系统加载未完成,建议您刷新后再进行yy操作 二.css加载完毕:对提示内容进行处理:例如红色提示变..黄色警告 ...

最新文章

  1. carthage update --no-use-binaries --platform mac,ios
  2. Redis 16 大应用场景,竟然这么多。。
  3. 虚拟和现实,两种不同身份的切换——留美95后的游戏人生
  4. 以知乎为例子来说明MVC是个啥
  5. RabbitMQ笔记-使用rabbitmq-c让生产者发送数据
  6. java+map申明_Java中两种HashMap申明方式区别?
  7. antd vue关闭模态对话框_我不能没有的5个Vue.js库
  8. scipy.special —— 排列、组合与阶乘
  9. 贪心整理一本通1431:钓鱼题解
  10. 【洛谷P1314】聪明的质检员(二分+前缀和+差分)
  11. hightec教程_如何用VectorCAST/C++做单元集成测试?
  12. python人脸识别代码实现
  13. java动态数组大总结
  14. 基于FPGA的ov5640摄像头简易图像采集装置详解
  15. 高三数学辅导:不等式、推理与证明
  16. 苹果电脑安装双系统有必要吗?
  17. 百钱买百鸡 假设公鸡5文钱一只 母鸡三文钱一只 小鸡1文钱三只,要求用100文钱 , 如何买到100只鸡
  18. 超宽带uwb精准定位,厘米级室内定位技术,实时高精度方案应用
  19. C++生日聚会(BFS)
  20. sql compact 转mysql_如何将数据导入到 SQL Server Compact Edition 数据库中(三)

热门文章

  1. 宿命传说2之女神召唤java_热血传奇:传奇那些传说中的秘密,连骨灰级的玩家都未必知道...
  2. vscode中控制台不能输入_vscode调试时如何在控制台输入
  3. 设计灵感|网页建议页面(联系页面)版式案例
  4. 个性潮流的设计PSD分层模板
  5. 电商美工需要的优质PSD素材,减少设计师75%办公加班时间
  6. 最火UI素材|短视频、直播APP套件,轻松搞定设计
  7. 醒目的UI图标,带来出色的用户优良体验
  8. php字符串转二进制数组中,如何将php字符串转成二进制
  9. c语言第三章作业题答案,c语言第三章简单练习题及答案.doc
  10. Linux开机启动过程(6):页表的初始化、避开保留的内存、地址随机化