JavaScript engine

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. října 2017; kontroly vyžadují 13 úprav .

JavaScript engine  je specializovaný program , který zpracovává JavaScript , zejména v prohlížečích .

Historie

Do roku 2008-2009 JavaScript engine (také nazývaný JavaScript interpret a JavaScript implementace ) byl implementován jako interpret , který čte a spouští zdrojový kód JavaScriptu .

První JavaScript engine vytvořil Brendan Eich z Netscape Communications pro prohlížeč Netscape Navigator . Motor dostal kódové označení SpiderMonkey a byl implementován v programovacím jazyce C. Následně byla aktualizována, aby byla kompatibilní s třetím vydáním specifikace ECMA-262. Rhino JavaScript engine byl napsán primárně Norrisem Boydem  ( také z Netscape) a je implementací JavaScriptu v programovacím jazyce Java . Stejně jako SpiderMonkey je Rhino kompatibilní se třetím vydáním specifikace ECMA-262. Nitro od Apple Safari je také kompatibilní s touto specifikací, V8 z Google Chrome a TraceMonkey z Mozilla Firefox 3.5.

Nejběžnějším prostředím pro provádění JavaScriptu je prohlížeč. Prohlížeče zpravidla poskytují veřejné API pro vytváření runtime objektů ( anglicky  host objects ), které poskytují možnost pracovat s DOM v JavaScriptu.

Dalším běžným prostředím pro provádění JavaScriptu je webový server . Webový server s povoleným JavaScriptem zpřístupňuje runtime objekty představující požadavek HTTP a odpověď HTTP. Manipulací s těmito objekty může program JavaScript dynamicky generovat stránky. Například technologie ASP pro webový server IIS umožňuje implementovat serverovou část, včetně programovacího jazyka JScript (implementace JavaScriptu od společnosti Microsoft). Dalším příkladem je webový server Jaxer kromě objektů tradičních pro servery i objekty tradiční pro prohlížeče. Výhodou tohoto přístupu je, že stejný kód může být sdílen mezi serverem a klientem.

JavaScriptové motory

Jádro JavaScript Engines:

Mozilla

Google

Ostatní

Vývoj výkonu

Firefox 3.5 (vydán 30. června 2009) používá optimalizační techniku, která navrhuje "v některých případech 20-40x zlepšení výkonu" [ 2] .

Dne 2. června 2008 představil vývojový tým WebKit SquirrelFish [3]  , nový JavaScript engine, který výrazně zlepšil rychlost, jakou Safari [4] interpretuje skripty . Tento engine byl jednou z nových funkcí v Safari 4. Testovací verze se objevila 11. června 2008; motor byl nakonec přejmenován na Nitro.

Od té doby začal závod vývojářů prohlížečů ve zvýšení rychlosti JavaScriptových enginů. Od roku 2008 v něm Google Chrome drží dlaň : to je potvrzeno mnoha nezávislými experimenty [5] [6] [7] . S příchodem Squirrelfish Extreme od vývojářů WebKit a Tracemonkey od Mozilly již není výkon JavaScriptu v Google Chrome považován za nejlepší [8] [9] [10] [11] . Google Danish však vyvinul V8 JavaScript engine s výrazně lepším výkonem JavaScriptu v Google Chrome 2.

Prohlížeč má obvykle vykreslovací modul prohlížeče a modul JavaScript, což usnadňuje testování, opětovné použití nebo použití v jiných projektech. Například Caracan se používá s Presto, Nitro s WebKit, SpiderMonkey s Gecko, KJS s KHTML, Rhino se standardně nepoužívá s žádným z enginů prohlížeče. Někdy jsou možné i jiné kombinace, například V8 s WebKit v Google Chrome. JavaScript engine umožňuje vývojářům přístup k funkcionalitám (sítě, DOM, externí události, HTML5 video, plátno, úložiště) potřebné k ovládání webového prohlížeče.

Sunspider je testování výkonu JavaScriptových motorů ve více než tuctu testů, z nichž každý je zaměřen na jinou část jazyka JavaScript. Sunspider není určen k testování funkcí, které souvisejí s něčím jiným než s výpočetní technikou (HTML, CSS, sítě).

Implementace

JavaScript je dialekt ECMAScript podporovaný mnoha aplikacemi, zejména prohlížeči. Dialekty někdy zahrnují jazyková rozšíření nebo standardní knihovnu a odpovídající API , jako je dokumentový objektový model W3C . To znamená, že aplikace napsané pro jeden dialekt nemusí být kompatibilní s ostatními, pokud nesdílejí společnou podmnožinu podporovaných funkcí a rozhraní API.

Mezi dialektem a implementací není jasný rozdíl. Dialekt jazyka je variací jazyka s významnými rysy, zatímco implementace jazyka/dialektu spouští program napsaný v tomto dialektu.

aplikace Dialekt a nejnovější verze Edice ECMAScript
Google Chrome , motor V8 JavaScript ECMA-262 Revize 5
Mozilla Firefox , Gecko , SpiderMonkey a Rhino JavaScript 1.8.1 ECMA-262 Revize 5
Opera ECMAScript s některými rozšířeními JavaScript 1.5
a JScript [12]
ECMA-262 Revize 5.1
KHTML layout engine, Konqueror z KDE a Safari od Apple JavaScript 1.5 ECMA-262 Revize 3
Adobe Acrobat JavaScript 1.5 ECMA-262 Revize 3
Platforma OpenLaszlo JavaScript 1.4 ECMA-262 Revize 3
MSP JavaScript 1.5 ECMA-262 Revize 3
Galio JavaScript 1.5 s rozšířeními RMAI ECMA-262 Revize 3

Poznámky

  1. Oiaga, Marius Internet Explorer 9 Beta Next – nový IE9 se sestavuje každých 8  týdnů . softpedia.com . SoftNews NET SR (20. března 2010). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  2. Ryan, Paul Firefox získat masivní zvýšení výkonu JavaScriptu  . arstechnica.com . Ars Technica © 2010 Condé Nast Digital (22. srpna 2008). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  3. Garen, Geoffrey Announcing SquirrelFish (2. června 2008). Získáno 30. června 2008. Archivováno z originálu 1. května 2012.
  4. Lipskas, Vygantas Apple Safari 4 (11. června 2008). Získáno 30. června 2008. Archivováno z originálu 1. května 2012.
  5. Stephen Shankland. Test rychlosti: Google Chrome poráží Firefox, IE, Safari . cnet.com Obchodní technologie . CNET News (2. září 2008). Získáno 28. června 2010. Archivováno z originálu 1. května 2012.
  6. Riemann, Link Velký srovnávací test prohlížečů: Internet Explorer vs.  Firefox, Opera, Safari a Chrome – aktualizace: Firefox 3.5 Final . Hardware PC her . Computec Media AG (3. července 2009). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  7. Purdy, Kevin Lifehacker Speed ​​​​Tests: Safari 4, Chrome 2 a  další . Lifehacker (6. listopadu 2009). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  8. Stephen Shankland, CNET News.com. Třetí beta Chrome o další stupeň rychlejší  . Stavitel AU (3. listopadu 2008). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  9. ↑ Udělejte krok stranou, Chrome, pro Squirrelfish Extreme – zprávy archivovány 6. října 2009 na Wayback Machine , Builder AU
  10. Ying, Charles SquirrelFish Extreme: Zatím nejrychlejší JavaScript Engine  ( 19. září 2008). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  11. Shankland, Stephen Firefox čelí testu rychlosti prohlížeče  Google . CNET News (3. září 2008). Získáno 30. června 2010. Archivováno z originálu 1. května 2012.
  12. Podpora webových specifikací v Opeře Presto . Opera.com . Opera Software A.S.A. Získáno 28. června 2010. Archivováno z originálu 28. ledna 2011.

Odkazy