根据定期抓取流行网站网页的 HTTPArchive 的统计,平均一个网页需要 350KB 的 JavaScript 代码,有十分之一的网页包含了 1MB 大小的 JS 代码。浏览器的 JS 引擎在传输完成之后需要检查代码的语法错误并进行编译,1 MB 的 JS 文件在高端移动设备上需要花费 100 毫秒的时间,在普通手机上需要花超过一秒钟时间。
针对上述情况,主要浏览器开发商已经提出了加快 JS 解析的方案,例如 WebAssembly,但并不容易实现。因此 Mozilla、Cloudflare 和 Facebook 等提出了另一个更方便的方案 —— BinaryAST,旨在保留 JavaScript 原始语义的情况下加快解析。
△ JavaScript 速度测试 / img source:BinaryAST
Mozilla 和 CloudFlare 的测试发现,它能将加载时间减少 4% 到 13%,如果能跳过未使用的函数,它可以将加载时间减少最多 98%。Firefox Nightly 版本是首个支持该二进制格式的浏览器,而 Cloudflare 是首个提供必要的云托管 JS 引擎的 CDN 服务商。
△ 在 FIrefox 中启用 BinaryAST
引用来自“ChengShuai”的评论
有没有更详细点的文章介绍一下这个东西?觉得它很有潜力啊