JavaScript motor

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2017. október 5-én felülvizsgált verziótól ; az ellenőrzések 13 szerkesztést igényelnek .

A JavaScript motor  egy speciális program , amely a JavaScriptet dolgozza fel, különösen a böngészőkben .

Történelem

2008-2009-ig A JavaScript-motort (más néven JavaScript értelmezőt és JavaScript implementációt ) olyan értelmezőként valósították meg, amely beolvassa és végrehajtja a JavaScript -forráskódot .

Az első JavaScript motort Brendan Eich készítette a Netscape Communications -től a Netscape Navigator böngészőhöz . A motor kódneve SpiderMonkey volt, és C programozási nyelven valósították meg . Ezt követően frissítették, hogy kompatibilis legyen az ECMA-262 specifikáció harmadik kiadásával. A Rhino JavaScript motort elsősorban Norris Boyd írta  ( szintén a Netscape-től), és a JavaScript implementációja a Java programozási nyelven . A SpiderMonkey-hoz hasonlóan a Rhino is kompatibilis az ECMA-262 specifikáció harmadik kiadásával. Az Apple Safari Nitro-ja is kompatibilis ezzel a specifikációval , V8 a Google Chrome -tól és TraceMonkey a Mozilla Firefox 3.5-től.

A leggyakoribb JavaScript-végrehajtási környezet a böngésző. Általános szabály, hogy a böngészők nyilvános API -t biztosítanak a futásidejű objektumok ( angolul  hostobjektumok ) létrehozásához, amelyek lehetővé teszik a JavaScript DOM -mal való együttműködését.

Egy másik gyakori JavaScript-végrehajtási környezet a webszerver . A JavaScript-kompatibilis webszerver HTTP-kérést és HTTP-választ képviselő futásidejű objektumokat tesz közzé . Ezen objektumok manipulálásával egy JavaScript program dinamikusan tud oldalakat generálni. Például az IIS webszerver ASP technológiája lehetővé teszi a kiszolgálórész megvalósítását, beleértve a JScript programozási nyelvet is (a Microsoft JavaScript implementációja). Egy másik példa a Jaxer webszerver amely szerverekhez használt hagyományos objektumok mellett a böngészők számára hagyományos objektumokat is biztosít Ennek a megközelítésnek az az előnye, hogy ugyanazt a kódot meg lehet osztani a szerver és a kliens között.

JavaScript motorok

Alapvető JavaScript motorok:

Mozilla

Google

Egyéb

A teljesítmény evolúciója

A Firefox 3.5 (megjelenés: 2009. június 30.) olyan optimalizálási technikát használ, amely "néhány esetben 20-40-szeres teljesítményjavítást javasol" [ 2] .

2008. június 2-án a WebKit fejlesztőcsapata bemutatta a SquirrelFish [3] nevű új JavaScript-motort, amely jelentősen javította a Safari [4] szkriptek értelmezésének  sebességét . Ez a motor volt az egyik újdonság a Safari 4-ben. A tesztverzió 2008. június 11-én jelent meg; a motort végül Nitro névre keresztelték.

Azóta megkezdődött a böngészőfejlesztők versenyfutása a JavaScript-motorok sebességének növeléséért. 2008 óta a Google Chrome tartja a pálmát : ezt számos független kísérlet is megerősíti [5] [6] [7] . A WebKit fejlesztői által a Squirrelfish Extreme és a Mozilla Tracemonkey megjelenésével a JavaScript teljesítményét a Google Chrome-ban már nem tartják a legjobbnak [8] [9] [10] [11] . A Google Danish azonban kifejlesztett egy V8 JavaScript motort , amely jelentősen javította a JavaScript teljesítményt a Google Chrome 2-ben.

Általában egy böngészőben van egy böngésző - megjelenítő motor és egy JavaScript motor, ami megkönnyíti a tesztelést, újrafelhasználást vagy más projektekben való felhasználást. Például a Caracan a Presto-val, a Nitro a WebKit-tel, a SpiderMonkey a Gecko-val, a KJS a KHTML-lel, a Rhino alapértelmezés szerint egyik böngészőmotornál sem. Néha más kombinációk is lehetségesek, például V8 a WebKittel a Google Chrome-ban. A JavaScript motor segítségével a fejlesztők hozzáférhetnek a webböngésző vezérléséhez szükséges funkciókhoz (hálózat, DOM, külső események, HTML5 videó, vászon, tárhely).

A Sunspider teljesítmény-tesztelő eszköze JavaScript-motorok teljesítményét több mint tucatnyi tesztben mérik, amelyek mindegyike a JavaScript nyelv más-más részére összpontosít. A Sunspider nem olyan funkciók tesztelésére készült, amelyek a számítástechnikán kívül mással kapcsolatosak (HTML, CSS, hálózat).

Megvalósítások

A JavaScript az ECMAScript dialektusa , amelyet számos alkalmazás, különösen böngészők támogatnak. A dialektusok néha nyelvi kiterjesztéseket vagy szabványos könyvtárat és megfelelő API -kat , például a W3C dokumentumobjektum-modelljét tartalmaznak . Ez azt jelenti, hogy az egyik dialektusra írt alkalmazások nem feltétlenül kompatibilisek másokkal, hacsak nem osztják meg a támogatott szolgáltatások és API-k közös részhalmazát.

Nincs egyértelmű különbség a dialektus és a megvalósítás között. Egy nyelv dialektusa egy nyelv változata jelentős tulajdonságokkal, míg a nyelvi/dialektus implementáció az adott dialektusban írt programot hajtja végre.

Alkalmazás Dialektus és legújabb verzió ECMAScript kiadás
Google Chrome , V8 motor JavaScript ECMA-262 5. változat
Mozilla Firefox , Gecko , SpiderMonkey és Rhino JavaScript 1.8.1 ECMA-262 5. változat
Opera ECMAScript néhány JavaScript 1.5
és JScript kiterjesztéssel [12]
ECMA-262 Revízió 5.1
KHTML elrendezési motor, Konqueror a KDE-től és Safari az Apple-től JavaScript 1.5 ECMA-262 3. változat
Adobe Acrobat JavaScript 1.5 ECMA-262 3. változat
OpenLaszlo Platform JavaScript 1.4 ECMA-262 3. változat
MSP_ JavaScript 1.5 ECMA-262 3. változat
Galio JavaScript 1.5 RMAI kiterjesztéssel ECMA-262 3. változat

Jegyzetek

  1. Oiaga, Marius Internet Explorer 9 Beta Next – 8 hetente készül az új  IE9 . softpedia.com . SoftNews NET SR (2010. március 20.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  2. Ryan, Paul Firefox a JavaScript teljesítményének jelentős növelése érdekében  . arstechnica.com . Ars Technica © 2010 Condé Nast Digital (2008. augusztus 22.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  3. Garen, Geoffrey bejelentette a mókushalat (2008. június 2.). Letöltve: 2008. június 30. Az eredetiből archiválva : 2012. május 1..
  4. Lipskas, Vygantas Apple Safari 4 (2008. június 11.). Letöltve: 2008. június 30. Az eredetiből archiválva : 2012. május 1..
  5. Stephen Shankland. Sebességteszt: A Google Chrome legyőzi a Firefoxot, az IE-t, a Safarit . cnet.com Business Tech . CNET News (2008. szeptember 2.). Letöltve: 2010. június 28. Az eredetiből archiválva : 2012. május 1..
  6. Riemann, Link Big böngésző összehasonlító teszt: Internet Explorer vs.  Firefox, Opera, Safari és Chrome – Frissítés: Firefox 3.5 Final . PC játékok hardver . Computec Media AG (2009. július 3.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  7. Purdy, Kevin Lifehacker sebességtesztek: Safari 4, Chrome 2 és  egyebek . Lifehacker (2009. november 6.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  8. Stephen Shankland, CNET News.com. A harmadik Chrome béta egy fokkal gyorsabb  . Builder AU (2008. november 3.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  9. Lépj félre, Chrome, a Squirrelfish Extreme számára - Hírek archiválva : 2009. október 6., a Wayback Machine , Builder AU
  10. Ying, Charles SquirrelFish Extreme: Az eddigi leggyorsabb JavaScript-motor  ( 2008. szeptember 19.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  11. Shankland, Stephen Firefox ellenzi a Google böngészősebesség - tesztjét  . CNET News (2008. szeptember 3.). Letöltve: 2010. június 30. Az eredetiből archiválva : 2012. május 1..
  12. Webes specifikációk támogatása az Opera Presto-ban . Opera.com . Opera Software A.S.A. Letöltve: 2010. június 28. Az eredetiből archiválva : 2011. január 28..

Linkek