浏览器厂商开始默认支持WebAssembly格式

各浏览器厂商在WebAssembly相关的工作上已经达成了一种“共识”,这使得各浏览器开始默认支持WebAssembly格式。

\\

早在2016年11月,WebAssembly就已经进入“浏览器预览”(Browser Preview)阶段。在此阶段,主流浏览器都提供了一个具有WebAssembly开关标识的测试版本浏览器。随后的数月时间,各浏览器厂商需要在JavaScript API二进制格式上做改进,并就此取得一致意见。近期发布的公告对WebAssembly做了界定:

\\
\

如果没有实现经验和明确用途,那么无法对WebAssembly API和二进制格式的设计做进一步的改进。从这个意义上讲,最初的设计工作已经完成。(各浏览器厂商)就此已达成了共识。

\\

这一共识标志着“浏览器预览”阶段的结束,意味着各个浏览器可以默认打开对WebAssembly格式的支持。由此往后,将来的特性设计会确保向后兼容。

\
\\

虽然这一最初实现是一个重要的里程碑,但是并不会立刻被开发人员大范围地采用。尽管未来潜力无限,WebAssembly当前的语言支持仅限于C和C++,以及对Rust的初期支持。WebAssembly也没有提供垃圾回收机制,因此C#和Java这样的语言并不能正常运行,除非将它们自身的运行时作为二进制的组成部分。但是以后添加垃圾回收已在讨论中。

\\

此外,WebAssembly当前缺少与DOM交互等重要特性。Mozilla工程师Lin Clark 写道,虽然“期待了很多的特性”,但是这些特性需要“有一个制定规范的过程”。WebAssembly社区组已经提供了一个供W3C工作组讨论的未来特性列表,但是这些特性何时可用尚未有时间表。

\\

Clark在一系列的帖子说明了WebAssembly会改进性能的原因所在,并指出引入WebAssembly将会是一个“转折点”,可导致无法预料的性能改进,并提供迎接新挑战的能力。

\\

今后几年,各浏览器厂商会在改进JIT编译器性能的同时,继续改进JavaScrip和WebAssembly间的交互。

\\

现在已可用的Firefox 52支持WebAssembly格式。定于2017年3月14日发布的Chrome 57也将默认启用WebAssembly格式。

\\

查看英文原文: Browser Vendors Start Shipping WebAssembly by Default

\\

感谢张卫滨对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

### 关于 Flash 浏览器插件的相关信息 #### 安装与配置 随着技术的发展,Flash Player 已经逐渐被市场淘汰。对于希望继续使用该功能的情况,在某些旧版本浏览器上仍可尝试安装或启用此插件。然而,大多数现代浏览器如 Chrome、Firefox 和 Edge 不再默认支持 Flash Player 或者已经彻底移除了对该插件的支持[^1]。 针对特定需求下的安装方法变得复杂且有限制条件较多,尤其是当涉及到不同操作系统的适配时更需谨慎对待。例如,在 Windows 10 上的新版 Microsoft Edge 浏览器中,默认情况下并不兼容传统的 Adobe Flash Player 插件;这是因为新版 Edge 使用了基于 Chromium 的架构,并集成了专属于此类浏览器的 NPAPI 版本 Flash 播放组件[^2]。 #### 兼容性问题及其原因分析 当前主流浏览器逐步停止对 Flash 技术的支持主要出于安全性和性能方面的考量。随着时间推移,越来越多的安全漏洞暴露出来,使得各大厂商纷纷决定弃用这一过时的技术栈。此外,HTML5 等新兴标准提供了更加高效稳定的多媒体处理能力,成为取代 Flash 的理想选择。 具体到个别案例来看,比如 Win10 中的新版 Edge 浏览器遇到 "Flash 与地区不兼容" 提示的现象,则是因为非官方渠道提供的 Flash 插件可能会遭遇第三方干扰(即所谓的“流氓公司”行为),进而影响正常使用体验并强制推广带有附加软件的产品。这表明即使是在同一平台上运行相同类型的插件也可能因为外部因素而面临不同的表现形式。 #### 解决方案与替代方案建议 面对上述提到的各种挑战,最直接有效的办法就是转向其他更为先进可靠的选择——特别是那些能够满足跨平台一致性的选项: - **HTML5**: 这是一个开放的标准框架,几乎所有的最新款浏览器都对其有着良好的原生支持度。它不仅涵盖了视频音频流媒体服务所需的一切特性,还具备更强的数据交互能力和图形渲染效率。 - **WebAssembly (Wasm)**: 对于计算密集型任务而言,这是一种非常有潜力的语言环境转换机制。通过编译成 Wasm 字节码文件可以在 Web 应用程序内部实现接近本地执行的速度优势。 - **JavaScript/TypeScript**: 结合丰富的前端库和框架生态体系,可以构建出高度互动式的用户体验界面。而且这些脚本语言本身也在不断进化完善之中,持续增强着自身的表达力和灵活性。 综上所述,尽管目前仍有部分场景下存在对 Flash 功能的需求,但从长远角度来看迁移至新一代互联网开发范式才是明智之举。这样做不仅能享受到更好的安全性保障和技术进步红利,同时也顺应了整个行业发展的大趋势[^3]。 ```html <!-- HTML5 Video Example --> <video width="320" height="240" controls> <source src="movie.mp4" type="video/mp4"> Your browser does not support the video tag. </video> <script> // JavaScript Canvas Drawing Example const canvas = document.getElementById('myCanvas'); const ctx = canvas.getContext('2d'); ctx.fillStyle = 'green'; ctx.fillRect(10, 10, 150, 75); </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值