Mozilla 等提出 BinaryAST,加快网页 JS 加载

2019年05月20日

根据定期抓取流行网站网页的 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

参考:venturebeatSolidotcnBeta

展开阅读全文
13 收藏
分享
加载中
精彩评论
Firefox 是浏览器的希望……
2019-05-20 08:23
9
举报
最新评论 (10)
序列化的悲剧希望不要重演就好!
2019-05-21 13:20
0
回复
举报

引用来自“久永”的评论

WebAssembly 可以脱离语言绑定,但是 BinaryAST 只是将js从文本形式改为二进制形式,格局上感觉差很多啊!
https://github.com/xitu/gold-miner/blob/master/TODO/binary-ast-newsletter-1.md
2019-05-20 12:46
0
回复
举报
骗人,浏览器下载完了,根本不会检查语法错误,我写错了代码,不执行到那永远不会报错,坑
2019-05-20 10:40
0
回复
举报
WebAssembly 可以脱离语言绑定,但是 BinaryAST 只是将js从文本形式改为二进制形式,格局上感觉差很多啊!
2019-05-20 10:26
0
回复
举报
ast树?
2019-05-20 08:56
0
回复
举报
从名字上看,就是先编译好js,然后传输的是编译后的js给浏览器,体积小了,然后浏览器端又不用检查语法、编译,这样达到节省时间的目的?
2019-05-20 08:34
0
回复
举报

引用来自“ChengShuai”的评论

有没有更详细点的文章介绍一下这个东西?觉得它很有潜力啊
@ChengShuai 应该是 CDN 将 js 编译成 WebbAssembly 或另一种中间代码。
2019-05-20 08:31
0
回复
举报
多介绍点啊
2019-05-20 08:31
0
回复
举报
有没有更详细点的文章介绍一下这个东西?觉得它很有潜力啊
2019-05-20 08:25
0
回复
举报
Firefox 是浏览器的希望……
2019-05-20 08:23
9
回复
举报
更多评论
10 评论
13 收藏
分享
返回顶部
顶部