Рушій JavaScript
Рушій JavaScript | |
Є реалізацією | JavaScript |
---|
Рушій JavaScript — програмний рушій, спеціалізована програма, що виконує скрипти JavaScript, переважно, в браузерах[1], але також і у серверній реалізації.
Як правило, браузер має браузерний рушій виводу, котрий займається промальовкою сторінок, і рушій JavaScript — це спрощує тестування, перевикористання або використання в інших проектах. Наприклад, Carakan використовується з Presto, Nitro з WebKit, SpiderMonkey з Gecko, KJS з KHTML, Rhino, за умовчуванням з жодним з браузерних рушіїв не використовується. Іноді можливі інші комбінації, наприклад, V8 з WebKit в Google Chrome. Рушій JavaScript дозволяє розробникам отримати доступ до функціональності (робота з мережею, з DOM, з зовнішніми подіями, з HTML5 (video, canvas, storage), що є необхідним для управління сучасним веббраузером.
Перший рушій JavaScript створив Брендан Айх в Netscape Communications для браузера Netscape Navigator. Рушій отримав кодову назву SpiderMonkey та був написаний на мові програмування Сі. З часом він оновлювався, проте відносно нього була досягнута сумісність з третьою редакцією специфікації ECMA-262.
Наступну редакцію рушія JavaScript — Rhino писав переважно Норріс Бойд (Norris Boyd, теж з Netscape), на мові програмування Java. Як й попередній SpiderMonkey, Rhino сумісний з третьою редакцією специфікації ECMA-262. З цією специфікацією також сумісні Nitro від Apple Safari, V8 від Google Chrome та TraceMonkey від Mozilla Firefox, починаючи з версії 3.5.
Найпоширенішим середовищем виконання JavaScript є браузер. Зазвичай браузери надають відкритий API для створення об'єктів середовища виконання (англ. Host objects), які надають можливість роботи з DOM в JavaScript.
Іншим розповсюдженим середовищем виконання JavaScript є вебсервер. Вебсервер, що підтримує JavaScript, надає об'єкти середовища виконання, що представляють HTTP-запит і HTTP-відповідь. Маніпулюючи цими об'єктами, програма на JavaScript може динамічно генерувати сторінки. Наприклад, технологія ASP для вебсервера IIS дозволяє реалізовувати серверну частину в тому числі і на мові програмування JScript (реалізація JavaScript від компанії Microsoft). Інший приклад це вебсервер Jaxer, що надає крім об'єктів традиційних для серверів ще й об'єкти традиційні для браузерів. Перевагою такого підходу є те, що один і той же код може бути розділений між сервером і клієнтом.
До 2008..2009 рушій JavaScript (відомий як інтерпретатор JavaScript) був реалізований в браузерах, як інтерпретатор, який зчитував та виконував початковий код на JavaScript. Згодом, коли складність та навантаження вебзастосунків значно зросли, розробники стали використовувати технології компіляції на льоту (JIT), методи паралельного обчислення та інші засоби прискорення швидкодії.
- SpiderMonkey — найперший рушій JavaScript, створений Бренданом Айхом в Netscape Communications.
- Rhino — розроблений Mozilla Foundation рушій з відкритим початковим кодом, повністю написаний на Java
- Tamarin.
- V8 — рушій JavaScript з відкритим початковим кодом, що був розроблений данським відділенням компанії Google. Використовується в браузерах на основі Chromium, Maxthon. Також V8// використовується в платформи node.js та io.js.
- KJS — ECMAScript/JavaScript — рушій середовища робочого столу KDE, спочатку розроблений Гаррі Портеньйо для браузера Konqueror.
- Narcissus — рушій JavaScript з відкритим вихідним кодом, написаний Бренданом Айхом.
- Tamarin — рушій JavaScript від компанії Adobe Systems
- Nitro (спочатку SquirrelFish) — рушій JavaScript в Safari4.
- Chakra (рушій JScript) — в Internet Explorer9[2]
- Chakra (рушій JavaScript) — в Microsoft Edge
- ↑ «Opera 10.5 brings new JavaScript engine» [Архівовано 3 жовтня 2013 у Wayback Machine.] Stephen Shankland
- ↑ Oiaga, Marius (20 березня 2010). Internet Explorer 9 Beta Next – New IE9 Builds Every 8 Weeks. softpedia.com (англійською) . SoftNews NET SRL. Архів оригіналу за 1 травня 2012. Процитовано 30 червня 2010.
- Are We Fast Yet? [Архівовано 23 лютого 2011 у Wayback Machine.] — A daily comparison of bleeding-edge JavaScript engines for Mozilla Firefox, Google Chrome and Apple Safari.
- Peacekeeper [Архівовано 1 лютого 2012 у Wayback Machine.] — Browser speed test
- Speed-Battle [Архівовано 5 січня 2021 у Wayback Machine.] — Online JavaScript speed test