Motor JavaScript

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 5 octombrie 2017; verificările necesită 13 modificări .

Un motor JavaScript  este un program specializat care procesează JavaScript , în special în browsere .

Istorie

Până în 2008-2009 Motorul JavaScript (numit și interpret JavaScript și implementare JavaScript ) a fost implementat ca un interpret care citește și execută codul sursă JavaScript .

Primul motor JavaScript a fost creat de Brendan Eich de la Netscape Communications pentru browserul Netscape Navigator . Motorul a primit numele de cod SpiderMonkey și a fost implementat în limbajul de programare C. Ulterior, a fost actualizat pentru a fi compatibil cu cea de-a treia ediție a specificației ECMA-262. Motorul JavaScript Rhino a fost scris în primul rând de Norris Boyd  ( tot de la Netscape) și este o implementare a JavaScript în limbajul de programare Java . La fel ca SpiderMonkey, Rhino este compatibil cu cea de-a treia ediție a specificației ECMA-262. Nitro de la Apple Safari este, de asemenea, compatibil cu această specificație, V8 de la Google Chrome și TraceMonkey de la Mozilla Firefox 3.5.

Cel mai comun mediu de execuție JavaScript este browserul. De regulă, browserele oferă un API public pentru crearea de obiecte de rulare ( obiecte gazdă în limba engleză  ) care oferă posibilitatea de a lucra cu DOM în JavaScript.

Un alt mediu de execuție JavaScript comun este serverul web . Un server web activat pentru JavaScript expune obiecte de rulare reprezentând o solicitare HTTP și un răspuns HTTP. Prin manipularea acestor obiecte, un program JavaScript poate genera dinamic pagini. De exemplu, tehnologia ASP pentru serverul web IIS vă permite să implementați partea de server, inclusiv în limbajul de programare JScript (implementarea JavaScript de la Microsoft). Un alt exemplu este serverul web Jaxer oferă pe lângă obiectele tradiționale pentru servere, obiecte tradiționale pentru browsere. Avantajul acestei abordări este că același cod poate fi partajat între server și client.

Motoare JavaScript

Motoarele JavaScript de bază:

Mozilla

Google

Altele

Evoluția performanței

Firefox 3.5 (lansat pe 30 iunie 2009) folosește o tehnică de optimizare care sugerează „îmbunătățiri de performanță de 20-40 ori în unele cazuri” [ 2] .

Pe 2 iunie 2008, echipa de dezvoltare WebKit a introdus SquirrelFish [3]  , un nou motor JavaScript care a îmbunătățit semnificativ viteza cu care Safari [4] interpretează scripturile . Acest motor a fost una dintre noile caracteristici din Safari 4. Versiunea de testare a apărut pe 11 iunie 2008; motorul a fost redenumit în cele din urmă Nitro.

De atunci, cursa dezvoltatorilor de browsere pentru a crește viteza motoarelor JavaScript a început. Din 2008, Google Chrome a ținut palma în el : acest lucru este confirmat de multe experimente independente [5] [6] [7] . Odată cu apariția Squirrelfish Extreme de către dezvoltatorii WebKit și Tracemonkey de la Mozilla, performanța JavaScript în Google Chrome nu mai este considerată cea mai bună [8] [9] [10] [11] . Cu toate acestea, Google Danish a dezvoltat un motor JavaScript V8 cu performanțe JavaScript mult îmbunătățite în Google Chrome 2.

De obicei, un browser are un motor de randare a browserului și un motor JavaScript, ceea ce facilitează testarea, reutilizarea sau utilizarea în alte proiecte. De exemplu, Caracan este folosit cu Presto, Nitro cu WebKit, SpiderMonkey cu Gecko, KJS cu KHTML, Rhino nu este folosit implicit cu niciunul dintre motoarele de browser. Alte combinații sunt uneori posibile, cum ar fi V8 cu WebKit în Google Chrome. Motorul JavaScript permite dezvoltatorilor să acceseze funcționalitățile (rețea, DOM, evenimente externe, video HTML5, canvas, stocare) necesare pentru a controla browserul web.

Sunspider este instrument de testare a performanței JavaScript în peste o duzină de teste, fiecare concentrat pe o parte diferită a limbajului JavaScript. Sunspider nu este conceput pentru a testa funcții care sunt legate de altceva decât de calcul (HTML, CSS, rețele).

Implementări

JavaScript este un dialect al ECMAScript acceptat de multe aplicații, în special de browsere. Dialectele includ uneori extensii de limbă sau o bibliotecă standard și API -uri corespunzătoare , cum ar fi Modelul obiectului document al W3C . Aceasta înseamnă că aplicațiile scrise pentru un dialect ar putea să nu fie compatibile cu altele decât dacă au un subset comun de caracteristici și API-uri acceptate.

Nu există o diferență clară între dialect și implementare. Un dialect al unei limbi este o variație a unei limbi cu caracteristici semnificative, în timp ce o implementare de limbă/dialect execută un program scris în acel dialect.

Aplicație Dialect și ultima versiune Ediția ECMAScript
Google Chrome , motor V8 JavaScript ECMA-262 Revizia 5
Mozilla Firefox , Gecko , SpiderMonkey și Rhino JavaScript 1.8.1 ECMA-262 Revizia 5
Operă ECMAScript cu unele extensii JavaScript 1.5
și JScript [12]
ECMA-262 Revizia 5.1
Motor de aspect KHTML , Konqueror de la KDE și Safari de la Apple JavaScript 1.5 ECMA-262 Revizia 3
Adobe Acrobat JavaScript 1.5 ECMA-262 Revizia 3
Platforma OpenLaszlo JavaScript 1.4 ECMA-262 Revizia 3
MSP JavaScript 1.5 ECMA-262 Revizia 3
Galio JavaScript 1.5 cu extensii RMAI ECMA-262 Revizia 3

Note

  1. Oiaga, Marius Internet Explorer 9 Beta Next - Noua versiune IE9 la fiecare 8  săptămâni . softpedia.com . SoftNews NET SR (20 martie 2010). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  2. Ryan, Paul Firefox pentru a obține o creștere masivă a performanței JavaScript  . arstechnica.com . Ars Technica © 2010 Condé Nast Digital (22 august 2008). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  3. Garen, Geoffrey Announcing Squirrel Fish (2 iunie 2008). Consultat la 30 iunie 2008. Arhivat din original la 1 mai 2012.
  4. Lipskas, Vygantas Apple Safari 4 (11 iunie 2008). Consultat la 30 iunie 2008. Arhivat din original la 1 mai 2012.
  5. Stephen Shankland. Test de viteză: Google Chrome învinge Firefox, IE, Safari . cnet.com Business Tech . CNET News (2 septembrie 2008). Consultat la 28 iunie 2010. Arhivat din original la 1 mai 2012.
  6. Riemann, Testul de comparare a browserului Link Big: Internet Explorer vs.  Firefox, Opera, Safari și Chrome - Actualizare: Firefox 3.5 Final . Hardware pentru jocuri pentru PC . Computec Media AG (3 iulie 2009). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  7. Purdy, Kevin Lifehacker Teste de viteză: Safari 4, Chrome 2 și  altele . Lifehacker (6 noiembrie 2009). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  8. Stephen Shankland, CNET News.com. Al treilea Chrome beta încă un pas mai rapid  . Builder AU (3 noiembrie 2008). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  9. Pas deoparte, Chrome, pentru Squirrelfish Extreme - Știri arhivate 6 octombrie 2009 la Wayback Machine , Builder AU
  10. Ying, Charles SquirrelFish Extreme: Fastest JavaScript Engine Yet  ( 19 septembrie 2008). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  11. Shankland, Stephen Firefox contracarează testul de viteză  al browserului Google . CNET News (3 septembrie 2008). Consultat la 30 iunie 2010. Arhivat din original la 1 mai 2012.
  12. Suport pentru specificații web în Opera Presto . Opera.com . Opera Software A.S.A. Consultat la 28 iunie 2010. Arhivat din original la 28 ianuarie 2011.

Link -uri