JavaScript-motor
A JavaScript-motor olyan speciális szoftver, ami értelmezi és futtatja a JavaScript (vagy ECMAScript) kódot. Bár számos más felhasználása is létezik a JavaScript-motoroknak, leggyakrabban mégis webböngészőkben használatosak.[1][2][2]
Története
A második, 2008-2009-es böngészőháború előtt, a JavaScript-motor (másképpen JavaScript-értelmező vagy JavaScript-implementáció) egyszerűen egy interpreter volt, ami beolvasta és sorról sorra végrehajtotta a JavaScript forráskódot.
Az első JavaScript-motort a Netscape Communications Corporationnél dolgozó Brendan Eich kódolta a Netscape Navigator webböngésző számára. A SpiderMonkey kódnevű motort C nyelven implementálta. Azóta (a JavaScript 1.5-ben) frissítették, hogy megfeleljen az ECMA-262 Edition 3 specifikációinak. A Rhino motort szintén egy Netscape-dolgozó, Norris Boyd hozta létre, Javában. Ahogy a SpiderMonkey, a Rhino is megfelel az ECMA-262 Edition 3-nak. A technológia felhasználói közé tartozik az Apple Safari 4 Nitro motorja, a Google Chrome V8 JavaScript-motorja és a Mozilla Firefox 3.5-ben található TraceMonkey.
A JavaScript messze leggyakoribb gazdakörnyezete a webböngésző. A böngészők általában a nyilvános API-t használják ún. „host object”-ek (a befogadó környezet által nyújtott objektumok) létrehozására, amik felelnek a DOM-ok JavaScriptbe való tükrözéséért.
A JavaScript-futtatómotorok másik gyakori alkalmazási környezete a webkiszolgáló. A JavaScript webszerver a HTTP-kérések és -válaszok objektumait reprezentáló host object-eket hozzáférhetővé teszi egy JavaScript nyelvű program számára, ami ezek alapján dinamikusan weboldalakat generál. A Microsoft IIS-ben használt ASP-technológiája lehetővé teszi a szerveroldali kód megírását VB Script és JScript (a Microsoft JavaScript-implementációja) nyelven egyaránt. A Jaxer egy teljesen JavaScriptben megírt webszerver; ennek az az előnye, hogy ugyanaz a kód futhat szerver- és kliensoldalon.
A teljesítmény fejlődése
„…a korábban színfalak mögötti, JavaScriptnek nevezett programozási technológia egyszerre láthatóvá válik… ”
– -CNET [2]
A tipikus, nagyobb böngészők rendelkeznek egy grafikus motorral és egy attól független JavaScript-motorral, ami könnyebbé teszi a tesztelést és a más projektben való felhasználását. Ilyen kombinációk a Carakan és a Presto, a Nitro és a WebKit; a SpiderMonkey és a Gecko; a KJS és a KHTML; a Rhinónak alapértelmezésben nincs megjelenítőmotorja. Más kombinációk is elképzelhetők, például a Google Chrome-ban a V8-at használják együtt a WebKittel. A JavaScript-motor a fejlesztőknek hozzáférést enged a webböngésző vezérléséhez szükséges funkciókhoz (hálózat, DOM-kezelés, külső események, HTML5 videó, canvas- és adattárolás).
A Sunspider egy JavaScript-sebességteszt, ami több mint egy tucat, a JavaScript nyelv különböző aspektusaira koncentráló tesztben értékeli a JavaScript-motorok sebességét. A SunSpider a mérés során nem használ az alapfunkcionalitáson kívüli képességeket (nincs benne HTML, CSS vagy hálózatkezelés).
Külső hivatkozások
- Are We Fast Yet? (Gyorsak vagyunk már?) – A Mozilla Firefox, Google Chrome és az Apple Safari legújabb JavaScript-motorjainak napi összehasonlítása
- Peacekeeper – Böngésző-sebességteszt
- Speed-Battle – Online JavaScript-sebességteszt
Források
- ↑ http://news.cnet.com/8301-30685_3-20000110-264.html "Opera 10.5 brings new JavaScript engine" Stephen Shankland
- ↑ a b c http://news.cnet.com/8301-17939_109-10157475-2.html
- Ez a szócikk részben vagy egészben a JavaScript engine című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.