BinaryAST - JavaScript ở dạng AST thay vì văn bản
(blog.cloudflare.com)Ngày nay, rất hiếm website không dùng JavaScript.
Ý tưởng thay vì gửi JavaScript xuống dưới dạng văn bản để phía client tự phân tích cú pháp, thì gửi xuống dưới dạng AST đã được phân tích sẵn từ trước, thực ra đã có từ lâu, và Cloudflare đã đào sâu hơn vào hướng này.
Nếu chỉ chọn ra những điểm thú vị thì...
-
Với văn bản, phải nhận toàn bộ rồi mới có thể phân tích cú pháp và thực thi
-
Với AST, chỉ cần nhận một phần cũng có thể thực thi
-
Có thể gửi trước đúng phần cần thiết để hiển thị màn hình đầu tiên, rồi gửi phần còn lại bất đồng bộ
-
Việc phân tích cú pháp được thực hiện bằng Node.js, nhưng chỉnh sửa và mã hóa AST thì dùng Rust!
-
Cloudflare cung cấp các VM cô lập tên là Workers, nơi có thể chạy logic tương tự AWS Lambda, và họ tận dụng nó trong quá trình chuyển từ Text -> BinaryAST
-
Workers là một engine dựa trên JavaScript, nên họ biên dịch Rust sang WebAssembly để chạy
-
Firefox đã có thể diễn giải BinAST
1 bình luận
Đã đọc rất hay.