Interested Article - Движок JavaScript

Движок 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 является браузер. Как правило, браузеры предоставляют открытый API для создания объектов среды исполнения ( англ. host objects ), предоставляющих возможность работы с DOM в JavaScript.

Другой распространённой средой исполнения JavaScript является веб-сервер . Веб-сервер, поддерживающий JavaScript, предоставляет объекты среды исполнения, представляющие HTTP -запрос и HTTP-ответ. Манипулируя этими объектами, программа на JavaScript может динамически генерировать страницы. Например, технология ASP для веб-сервера IIS позволяет реализовывать серверную часть в том числе и на языке программирования JScript (реализация JavaScript от компании Microsoft). Другой пример - это веб-сервер , предоставляющий помимо объектов, традиционных для серверов, еще и объекты, традиционные для браузеров. Преимуществом такого подхода является то, что один и тот же код может быть разделён между сервером и клиентом.

Движки JavaScript

Основные движки JavaScript:

Mozilla

Google

  • V8 — движок JavaScript с открытым исходным кодом, разрабатываемый датским отделением компании Google . Используется в браузерах на основе Chromium , а также в Maxthon 3 .

Другие

  • — ECMAScript/JavaScript-движок среды рабочего стола KDE , изначально разработанный для браузера Konqueror
  • — движок JavaScript с открытым исходным кодом, написанный Бренданом Айхом также на JavaScript'е
  • Tamarin от Adobe Systems
  • Nitro (изначально SquirrelFish ) — движок JavaScript в
  • в Internet Explorer 9 .
  • Carakan от Opera Software , используется в Opera , начиная с версии 10.55

Эволюция производительности

В Firefox 3.5 (выпущен 30 июня 2009 года) используется техника оптимизации, предполагающая «в некоторых случаях улучшение производительности в 20-40 раз» .

2 июня 2008 года команда разработчиков WebKit представила SquirrelFish — новый движок JavaScript, в котором достигалось значительное повышение скорости интерпретирования скриптов браузером Safari . Этот движок был одной из новых возможностей Safari 4. Тестовая версия появилась 11 июня 2008 года; в итоге движок был переименован в Nitro.

С тех пор началась гонка разработчиков браузеров по увеличению скорости движков JavaScript. С 2008 года пальму первенства в ней удерживает Google Chrome : это подтверждает множество независимых экспериментов . С появлением Squirrelfish Extreme от разработчиков WebKit и от Mozilla производительность JavaScript в Google Chrome перестала расцениваться как самая высокая . Однако датское подразделение 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, работа с сетью).

Реализации

JavaScript — диалект ECMAScript , поддерживаемый многими приложениями, в частности, браузерами. Диалекты иногда включают расширения языка или стандартную библиотеку и соответствующие API , такие как Document Object Model от W3C . Это означает, что приложения, написанные для одного диалекта, могут быть несовместимы с другими, если только они не используют общее подмножество поддерживаемых возможностей и API.

Нет чёткой разницы между диалектом и реализацией. Диалект языка — это вариация языка с существенными особенностями в то время как реализация языка/диалекта выполняет программу, написанную на этом диалекте.

Приложение Диалект и последняя версия Редакция ECMAScript
Google Chrome , движок V8 JavaScript ECMA-262, редакция 5
Mozilla Firefox , Gecko , SpiderMonkey и Rhino JavaScript 1.8.1 ECMA-262, редакция 5
Opera ECMAScript с некоторыми расширениями JavaScript 1.5
и JScript
ECMA-262, редакция 5.1
KHTML layout engine, Konqueror из KDE и Safari от Apple JavaScript 1.5 ECMA-262, редакция 3
Adobe Acrobat JavaScript 1.5 ECMA-262, редакция 3
Платформа OpenLaszlo JavaScript 1.4 ECMA-262, редакция 3
JavaScript 1.5 ECMA-262, редакция 3
JavaScript 1.5 с расширениями ECMA-262, редакция 3

Примечания

  1. Oiaga, Marius (англ.) . softpedia.com . SoftNews NET SR (20 марта 2010). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  2. Ryan, Paul (англ.) . arstechnica.com . Ars Technica © 2010 Condé Nast Digital (22 августа 2008). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  3. Garen, Geoffrey (2 июня 2008). Дата обращения: 30 июня 2008. 1 мая 2012 года.
  4. Lipskas, Vygantas (11 июня 2008). Дата обращения: 30 июня 2008. 1 мая 2012 года.
  5. Stephen Shankland. . cnet.com Business Tech . (2 сентября 2008). Дата обращения: 28 июня 2010. 1 мая 2012 года.
  6. Riemann, Link (англ.) . PC Games Hardware . Computec Media AG (3 июля 2009). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  7. Purdy, Kevin (англ.) . Lifehacker (6 ноября 2009). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  8. Stephen Shankland, CNET News.com. (англ.) . Builder AU (3 ноября 2008). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  9. от 6 октября 2009 на Wayback Machine , Builder AU
  10. Ying, Charles (англ.) (19 сентября 2008). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  11. Shankland, Stephen (англ.) . (3 сентября 2008). Дата обращения: 30 июня 2010. 1 мая 2012 года.
  12. . Opera.com . Opera Software ASA. Дата обращения: 28 июня 2010. 28 января 2011 года.

Ссылки

  • — онлайн-тест скорости выполнения JavaScript в браузерах
Источник —

Same as Движок JavaScript