6 คะแนน โดย heycalmdown 2020-04-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ทุกวันนี้แทบไม่มีเว็บไซต์ไหนที่ไม่มี JavaScript อยู่เลย

มีไอเดียนี้มานานแล้วว่า แทนที่จะส่ง JavaScript แบบข้อความลงไปแล้วให้ฝั่งไคลเอนต์ทำการพาร์สเอง จะเป็นอย่างไรถ้าส่งในรูปแบบ AST ที่พาร์สไว้แล้วแทน — Cloudflare ได้ลองขุดลึกเรื่องนี้มากขึ้น

ถ้าหยิบมาเฉพาะประเด็นที่น่าสนใจ...

  • ข้อความต้องรับมาครบทั้งหมดก่อน จึงจะพาร์สและประเมินผลได้

  • AST สามารถประเมินผลได้แม้จะรับมาเพียงบางส่วน

  • สามารถส่งเฉพาะส่วนที่จำเป็นต่อการแสดงหน้าจอแรกมาก่อน แล้วค่อยส่งที่เหลือแบบอะซิงโครนัสได้

  • การพาร์สทำด้วย Node.js แต่การแก้ไข AST และการเข้ารหัสทำด้วย Rust!

  • Cloudflare มี Workers ซึ่งเป็น VM แบบแยกส่วนที่สามารถรันลอจิกได้คล้าย AWS Lambda และนำสิ่งนี้มาใช้ในกระบวนการสร้าง Text -> BinaryAST

  • Workers เป็นเอนจินที่อิงกับ JavaScript จึงคอมไพล์ Rust เป็น WebAssembly เพื่อรัน

  • Firefox สามารถตีความ BinAST ได้อยู่แล้ว

1 ความคิดเห็น

 
saafk11 2020-04-08

อ่านได้ดีมากครับ