BinaryAST - JavaScript ในรูปแบบ AST แทนข้อความ
(blog.cloudflare.com)ทุกวันนี้แทบไม่มีเว็บไซต์ไหนที่ไม่มี JavaScript อยู่เลย
มีไอเดียนี้มานานแล้วว่า แทนที่จะส่ง JavaScript แบบข้อความลงไปแล้วให้ฝั่งไคลเอนต์ทำการพาร์สเอง จะเป็นอย่างไรถ้าส่งในรูปแบบ AST ที่พาร์สไว้แล้วแทน — Cloudflare ได้ลองขุดลึกเรื่องนี้มากขึ้น
ถ้าหยิบมาเฉพาะประเด็นที่น่าสนใจ...
-
ข้อความต้องรับมาครบทั้งหมดก่อน จึงจะพาร์สและประเมินผลได้
-
AST สามารถประเมินผลได้แม้จะรับมาเพียงบางส่วน
-
สามารถส่งเฉพาะส่วนที่จำเป็นต่อการแสดงหน้าจอแรกมาก่อน แล้วค่อยส่งที่เหลือแบบอะซิงโครนัสได้
-
การพาร์สทำด้วย Node.js แต่การแก้ไข AST และการเข้ารหัสทำด้วย Rust!
-
Cloudflare มี Workers ซึ่งเป็น VM แบบแยกส่วนที่สามารถรันลอจิกได้คล้าย AWS Lambda และนำสิ่งนี้มาใช้ในกระบวนการสร้าง Text -> BinaryAST
-
Workers เป็นเอนจินที่อิงกับ JavaScript จึงคอมไพล์ Rust เป็น WebAssembly เพื่อรัน
-
Firefox สามารถตีความ BinAST ได้อยู่แล้ว
1 ความคิดเห็น
อ่านได้ดีมากครับ