Лучшие вопросы
Таймлайн
Чат
Перспективы
Движок JavaScript
Из Википедии, свободной энциклопедии
Remove ads
Движок JavaScript — специализированная программа, выполняющая JavaScript, в частности, в браузерах.
История
Суммиров вкратце
Перспектива
До 2008-2009 гг. движок JavaScript (называемый также интерпретатор JavaScript и реализация JavaScript) реализовывался как интерпретатор, считывающий и исполняющий исходный код на JavaScript.
Первый JavaScript-движок создан Бренданом Айхом в Netscape Communications для браузера Netscape Navigator. Движок получил кодовое имя SpiderMonkey и был написан на языке программирования Си. Впоследствии движок обновлялся, и была достигнута совместимость движка с третьей редакцией спецификации ECMA-262.
JavaScript-движок Rhino написан преимущественно Норрисом Бойдом (англ. Norris Boyd (тоже из Netscape) и представляет собой реализацию JavaScript на языке программирования Java. Как и SpiderMonkey, Rhino совместим с третьей редакцией спецификации ECMA-262. С данной спецификацией также совместимы Nitro в Apple Safari, V8 в Google Chrome и TraceMonkey в Mozilla Firefox 3.5.
Наиболее распространённые среды исполнения JavaScript — броузерные (т. е. встроенные в web-броузер). Как правило, web-браузеры предоставляют открытый API для создания объектов среды исполнения (англ. host objects), реализующих возможность работы в JavaScript по модели DOM .
Другими распространёнными средами исполнения JavaScript является входящие в состав веб-серверов. Веб-сервер, поддерживающий JavaScript, предоставляет объекты среды исполнения, реализующие функции HTTP-запроса и HTTP-ответа. Манипулируя этими объектами, JavaScript-программа может динамически генерировать web-страницы. Например, технология ASP для веб-сервера IIS позволяет реализовывать серверную часть в том числе и на языке программирования JScript (реализация JavaScript от Microsoft). Другой пример — веб-сервер Jaxer[англ.], предоставляющий помимо объектов, традиционных для web-серверов, также и объекты, традиционные для web-браузеров. Преимуществом такой модели является то, что один и тот же код может быть разделён между сервером и клиентом.
Remove ads
Движки JavaScript
Суммиров вкратце
Перспектива
Основные движки JavaScript:
Mozilla
- SpiderMonkey — самый первый движок JavaScript, созданный Бренданом Айхом в Netscape Communications.
- Rhino, разрабатываемый Mozilla Foundation движок JavaScript с открытым исходным кодом, полностью написанный на Java.
- Tamarin.
Другие
- KJS[англ.] — ECMAScript/JavaScript-движок среды рабочего стола KDE, изначально разработанный Гарри Портеном[англ.] для браузера Konqueror
- Narcissus[англ.] — движок JavaScript с открытым исходным кодом, написанный Бренданом Айхом также на JavaScript'е
- Tamarin от Adobe Systems
- Nitro (изначально SquirrelFish) — движок JavaScript в Safari 4
- Chakra в Internet Explorer 9[1].
- Carakan от Opera Software, используется в Opera, начиная с версии 10.55
Эволюция производительности
В Firefox 3.5 (выпущен 30 июня 2009 года) используется техника оптимизации, предполагающая «в некоторых случаях улучшение производительности в 20-40 раз»[2].
2 июня 2008 года команда разработчиков WebKit представила SquirrelFish[3] — новый движок JavaScript, в котором достигалось значительное повышение скорости интерпретирования скриптов браузером Safari[4]. Этот движок был одной из новых возможностей Safari 4. Тестовая версия появилась 11 июня 2008 года; в итоге движок был переименован в Nitro.
С тех пор началась гонка разработчиков браузеров по увеличению скорости движков JavaScript. С 2008 года пальму первенства в ней удерживает Google Chrome: это подтверждает множество независимых экспериментов[5][6][7]. С появлением Squirrelfish Extreme от разработчиков WebKit и Tracemonkey от Mozilla производительность JavaScript в Google Chrome перестала расцениваться как самая высокая[8][9][10][11]. Однако датское подразделение Google разработало движок JavaScript V8 со значительно увеличенной производительностью JavaScript в Google Chrome 2.
Как правило, браузер имеет браузерный движок, занимающийся отрисовкой страниц, и движок JavaScript, что упрощает тестирование, переиспользование или использование в других проектах. Например, Caracan используется с Presto, Nitro с WebKit, SpiderMonkey с Gecko, KJS с KHTML, Rhino по умолчанию ни с одним из браузерных движков не используется. Иногда возможны другие комбинации, например, V8 с WebKit в Google Chrome. Движок JavaScript позволяет разработчикам получить доступ к функциональности (работа с сетью, с DOM, с внешними событиями, с HTML5 video, canvas, storage), необходимой для управления веб-браузером.
Sunspider — инструмент тестирования производительности браузера[англ.], используемый для измерения производительности движков JavaScript в более чем дюжине тестов, каждый из которых заточен на отдельную часть языка JavaScript. Sunspider не предназначен для тестирования возможностей, связанных с чем-то помимо вычислений (HTML, CSS, работа с сетью).
Remove ads
Реализации
Суммиров вкратце
Перспектива
JavaScript — диалект ECMAScript, поддерживаемый многими приложениями, в частности, браузерами. Диалекты иногда включают расширения языка или стандартную библиотеку и соответствующие API, такие как Document Object Model от W3C. Это означает, что приложения, написанные для одного диалекта, могут быть несовместимы с другими, если только они не используют общее подмножество поддерживаемых возможностей и API.
Нет чёткой разницы между диалектом и реализацией. Диалект языка — это вариация языка с существенными особенностями в то время как реализация языка/диалекта выполняет программу, написанную на этом диалекте.
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads