JavaScript-moottori

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 5. lokakuuta 2017 tarkistetusta versiosta . tarkastukset vaativat 13 muokkausta .

JavaScript-moottori  on erikoisohjelma, joka käsittelee JavaScriptiä erityisesti selaimissa .

Historia

2008-2009 asti JavaScript-moottori (kutsutaan myös JavaScriptin tulkiksi ja JavaScript-toteutukseksi ) toteutettiin tulkkina , joka lukee ja suorittaa JavaScript- lähdekoodia .

Ensimmäisen JavaScript - moottorin loi Brendan Eich Netscape Communicationsista Netscape Navigator -selaimelle . Moottorin koodinimi oli SpiderMonkey ja se toteutettiin C - ohjelmointikielellä . Myöhemmin se on päivitetty yhteensopivaksi ECMA-262-spesifikaation kolmannen painoksen kanssa. Rhino JavaScript -moottorin on kirjoittanut ensisijaisesti Norris Boyd  ( myös Netscapesta), ja se on JavaScript-toteutus Java -ohjelmointikielellä . Kuten SpiderMonkey, Rhino on yhteensopiva ECMA-262-määrityksen kolmannen painoksen kanssa. Apple Safarin Nitro on myös yhteensopiva tämän määrityksen kanssa, V8 Google Chromesta ja TraceMonkey Mozilla Firefox 3.5:stä.

Yleisin JavaScript-suoritusympäristö on selain. Pääsääntöisesti selaimet tarjoavat julkisen API :n ajonaikaisten objektien ( englanninkielisten  isäntäobjektien ) luomiseen , jotka tarjoavat mahdollisuuden työskennellä JavaScriptin DOM :n kanssa.

Toinen yleinen JavaScript-suoritusympäristö on verkkopalvelin . JavaScript-yhteensopiva verkkopalvelin paljastaa ajonaikaiset objektit, jotka edustavat HTTP - pyyntöä ja HTTP-vastausta. Näitä objekteja manipuloimalla JavaScript-ohjelma voi luoda sivuja dynaamisesti. Esimerkiksi IIS -verkkopalvelimen ASP - teknologia mahdollistaa palvelinosan toteuttamisen myös JScript -ohjelmointikielellä (Microsoftin JavaScript-toteutus). Toinen esimerkki on Jaxer-verkkopalvelin tarjoaa palvelimille perinteisten objektien lisäksi myös selaimille perinteisiä objekteja Tämän lähestymistavan etuna on, että sama koodi voidaan jakaa palvelimen ja asiakkaan välillä.

JavaScript-moottorit

Ydin JavaScript-moottorit:

Mozilla

Google

Muut

Suorituskyvyn kehitys

Firefox 3.5 (julkaistu 30. kesäkuuta 2009) käyttää optimointitekniikkaa, joka ehdottaa "20-40x suorituskyvyn parannuksia joissakin tapauksissa" [ 2] .

2. kesäkuuta 2008 WebKitin kehitystiimi esitteli SquirrelFish [3]  , uuden JavaScript-moottorin, joka paransi merkittävästi nopeutta, jolla Safari [4] tulkitsee skriptejä . Tämä moottori oli yksi Safari 4:n uusista ominaisuuksista. Testiversio ilmestyi 11. kesäkuuta 2008; Moottori nimettiin lopulta Nitroksi.

Siitä lähtien selainkehittäjien kilpailu JavaScript-koneiden nopeuden lisäämiseksi on alkanut. Vuodesta 2008 lähtien Google Chrome on pitänyt kämmentä siinä : tämän ovat vahvistaneet monet riippumattomat kokeet [5] [6] [7] . WebKit-kehittäjien Squirrelfish Extremen ja Mozillan Tracemonkeyn käyttöönoton myötä JavaScriptin suorituskykyä Google Chromessa ei pidetä enää parhaana [8] [9] [10] [11] . Google Danish on kuitenkin kehittänyt V8 JavaScript -moottorin , jolla on huomattavasti parempi JavaScript-suorituskyky Google Chrome 2:ssa.

Tyypillisesti selaimessa on selaimen renderöintimoottori ja JavaScript-moottori, joten sen testaus, uudelleenkäyttö tai käyttö muissa projekteissa on helppoa. Esimerkiksi Caracania käytetään Preston kanssa, Nitroa WebKitin kanssa, SpiderMonkeya Geckon kanssa, KJS:ää KHTML:n kanssa, Rhinoa ei käytetä oletuksena missään selainkoneissa. Muut yhdistelmät ovat joskus mahdollisia, kuten V8 ja WebKit Google Chromessa. JavaScript-moottorin avulla kehittäjät voivat käyttää verkkoselaimen ohjaamiseen tarvittavia toimintoja (verkko, DOM, ulkoiset tapahtumat, HTML5-video, kanvas, tallennustila).

Sunspider on testaustyökalu, JavaScript-koneiden suorituskyvyn mittaamiseen yli tusinassa testissä, joista jokainen keskittyi JavaScript-kielen eri osaan. Sunspider ei ole suunniteltu testaamaan ominaisuuksia, jotka liittyvät mihinkään muuhun kuin tietojenkäsittelyyn (HTML, CSS, verkko).

Toteutukset

JavaScript on ECMAScriptin murre, jota monet sovellukset, erityisesti selaimet, tukevat. Murteet sisältävät joskus kielilaajennuksia tai vakiokirjaston ja vastaavat API :t , kuten W3C : n asiakirjaobjektimallin . Tämä tarkoittaa, että yhdelle murteelle kirjoitetut sovellukset eivät välttämättä ole yhteensopivia muiden kanssa, ellei niillä ole yhteistä tuettujen ominaisuuksien ja sovellusliittymien osajoukkoa.

Murteen ja toteutuksen välillä ei ole selvää eroa. Kielen murre on kielen muunnelma, jolla on merkittäviä ominaisuuksia, kun taas kieli-/murretoteutus suorittaa kyseisellä murteella kirjoitetun ohjelman.

Sovellus Murre ja uusin versio ECMAScript-versio
Google Chrome , V8 moottori JavaScript ECMA-262 versio 5
Mozilla Firefox , Gecko , SpiderMonkey ja Rhino JavaScript 1.8.1 ECMA-262 versio 5
Ooppera ECMAScript joissakin JavaScript 1.5-
ja JScript- laajennuksissa [12]
ECMA-262-versio 5.1
KHTML - asettelumoottori, Konqueror KDE:stä ja Safari Applelta JavaScript 1.5 ECMA-262 versio 3
Adobe Acrobat JavaScript 1.5 ECMA-262 versio 3
OpenLaszlo-alusta JavaScript 1.4 ECMA-262 versio 3
MSP JavaScript 1.5 ECMA-262 versio 3
Galio JavaScript 1.5 RMAI- laajennuksilla ECMA-262 versio 3

Muistiinpanot

  1. Oiaga, Marius Internet Explorer 9 Beta Next – uusi IE9 rakennetaan 8  viikon välein . softpedia.com . SoftNews NET SR (20. maaliskuuta 2010). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  2. Ryan, Paul Firefox parantaa JavaScriptin suorituskykyä merkittävästi  . arstechnica.com . Ars Technica © 2010 Condé Nast Digital (22. elokuuta 2008). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  3. Garen, Geoffrey ilmoittaa SquirrelFishista (2. kesäkuuta 2008). Haettu 30. kesäkuuta 2008. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  4. Lipskas, Vygantas Apple Safari 4 (11. kesäkuuta 2008). Haettu 30. kesäkuuta 2008. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  5. Stephen Shankland. Nopeustesti: Google Chrome voittaa Firefoxin, IE:n ja Safarin . cnet.com Business Tech . CNET News (2. syyskuuta 2008). Haettu 28. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  6. Riemann, Link Big -selainvertailutesti: Internet Explorer vs.  Firefox, Opera, Safari ja Chrome - Päivitys: Firefox 3.5 Final . PC-pelien laitteisto . Computec Media AG (3. heinäkuuta 2009). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  7. Purdy, Kevin Lifehackerin nopeustestit: Safari 4, Chrome 2 ja  muut . Lifehacker (6. marraskuuta 2009). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  8. Stephen Shankland, CNET News.com. Kolmas Chrome beta toinen pykälän nopeampi  . Builder AU (3. marraskuuta 2008). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  9. Astu sivuun, Chrome, Squirrelfish Extreme - Uutiset arkistoitu 6. lokakuuta 2009 Wayback Machinessa , Builder AU
  10. Ying, Charles SquirrelFish Extreme: Nopein JavaScript-moottori tähän  mennessä ( 19. syyskuuta 2008). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  11. Shankland , Stephen Firefox vastustaa Googlen selaimen nopeustestiä  . CNET News (3. syyskuuta 2008). Haettu 30. kesäkuuta 2010. Arkistoitu alkuperäisestä 1. toukokuuta 2012.
  12. Web-spesifikaatioiden tuki Opera Prestossa . Opera.com . Opera Software A.S.A. Haettu 28. kesäkuuta 2010. Arkistoitu alkuperäisestä 28. tammikuuta 2011.

Linkit