Engine JavaScript
Engine JavaScript là một thành phần phần mềm thực thi mã JavaScript. Các JavaScript engine đầu tiên chỉ là trình thông dịch, nhưng tất cả các engine hiện đại đều sử dụng biên dịch tức thời để cải thiện hiệu suất.[1]
Các JavaScript engine thường được phát triển bởi các nhà cung cấp trình duyệt web và mọi trình duyệt chính đều có một cái. Trong trình duyệt, JavaScript engine chạy cùng với công cụ hiển thị thông qua Document Object Model.
Việc sử dụng các JavaScript engine không giới hạn ở các trình duyệt. Ví dụ: Engine V8 là thành phần cốt lõi của hệ thống runtime Node.js và Deno.
Vì ECMAScript là thông số kỹ thuật tiêu chuẩn của JavaScript, nên engine ECMAScript là tên gọi khác của các engine này. Với sự ra đời của WebAssembly, một số engine cũng có thể thực thi mã này trong cùng sandbox như mã JavaScript thông thường.
Lịch sử
[sửa | sửa mã nguồn]JavaScript engine đầu tiên được tạo bởi Brendan Eich vào năm 1995 cho trình duyệt web Netscape Navigator. Đó là một trình thông dịch thô sơ cho ngôn ngữ non trẻ mà Eich đã phát minh ra. (Engine này đã phát triển thành engine SpiderMonkey, vẫn được trình duyệt Firefox sử dụng.)
JavaScript engine hiện đại đầu tiên là V8, do Google tạo cho trình duyệt Chrome của mình. V8 ra mắt như một phần của Chrome vào năm 2008 và hiệu suất của nó tốt hơn nhiều so với bất kỳ engine nào trước đó.[2][3] Sự đổi mới quan trọng là biên dịch đúng lúc, có thể cải thiện đáng kể thời gian thực hiện.
Các nhà cung cấp trình duyệt khác cần đại tu trình thông dịch của họ để cạnh tranh.[4] Các nhà cung cấp trình duyệt khác cần đại tu trình thông dịch của họ để cạnh tranh.[5] Mozilla đã tận dụng một phần của Nitro để cải thiện engine SpiderMonkey của riêng mình.
Kể từ năm 2017, các engine này đã thêm hỗ trợ cho WebAssembly. Điều này cho phép sử dụng các tệp thực thi được biên dịch sẵn cho các phần quan trọng về hiệu suất của tập lệnh trang.
Các engine đáng chú ý
[sửa | sửa mã nguồn]- V8 của Google là engine JavaScript được sử dụng nhiều nhất. Google Chrome và nhiều trình duyệt dựa trên Chromium khác sử dụng nó, cũng như các ứng dụng được xây dựng bằng CEF, Electron hoặc bất kỳ framework nào khác nhúng Chromium. Các engine khác sử dụng nó bao gồm các hệ thống runtime Node.js và Deno.
- SpiderMonkey được phát triển bởi Mozilla để sử dụng trong Firefox và các nhánh của nó. GNOME Shell sử dụng nó để hỗ trợ tiện ích mở rộng.
- JavaScriptCore là engine của Apple dành cho trình duyệt Safari. Các trình duyệt dựa trên WebKit khác cũng sử dụng nó. KJS từ KDE là điểm khởi đầu cho sự phát triển của nó.[6]
- Chakra là engine của trình duyệt Internet Explorer. Nó cũng được Microsoft chia ra cho trình duyệt Edge ban đầu, nhưng Edge sau đó đã được xây dựng lại thành trình duyệt dựa trên Chromium và do đó hiện sử dụng V8.[7][8]
Tham khảo
[sửa | sửa mã nguồn]- ^ Looper, Jen (21 tháng 9 năm 2015). “A Guide to JavaScript Engines for Idiots”. Telerik Developer Network. Lưu trữ bản gốc ngày 8 tháng 12 năm 2018.
- ^ “Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome”. PC Games Hardware. Computec Media AG. Bản gốc lưu trữ ngày 2 tháng 5 năm 2012. Truy cập ngày 28 tháng 6 năm 2010.
- ^ “Lifehacker Speed Tests: Safari 4, Chrome 2”. Lifehacker. Bản gốc lưu trữ ngày 14 tháng 2 năm 2021. Truy cập ngày 28 tháng 6 năm 2010.
- ^ “Mozilla asks, 'Are we fast yet?'”. Wired. Truy cập ngày 18 tháng 1 năm 2019.
- ^ Safari 5 Released
- ^ Stachowiak, Maciej (9 tháng 11 năm 2008). “Companies and Organizations that have contributed to WebKit”. WebKit Wiki. Truy cập ngày 13 tháng 4 năm 2019.
- ^ Belfiore, Joe (15 tháng 1 năm 2020), New year, new browser – The new Microsoft Edge is out of preview and now available for download, Microsoft
- ^ “Microsoft Edge and Chromium Open Source: Our Intent”. Microsoft Edge Team. 6 tháng 12 năm 2018. Truy cập ngày 8 tháng 12 năm 2018.