Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Ostatnimznaczącymkrokiemwewolucjiprzeglądarekstałosiewprowadzeniemodelu
DOM(DocumentObjectModel),ujednoliconegopodejściadodynamicznegoHTML,
którezostałoprzyjęteprzezInternetExplorer5,Netscape6iOpera.Wkrótcepotemnastą-
piłastandaryzacjaJavaScriptdotrzeciejedycjiECMA-262.Biorącpoduwagę,żewszyst-
kieprzeglądarkiobsługująmodelDOMorazmniejwięcejsamąwersjęJavaScript,
narodziłasięplatformaaplikacjiWeb.Pomimotegoznacznegoskoku,standardowych
API,naktórychmożnasięopieraćpiszącJavaScript,maszynyJavaScriptodpowiadające
zawykonywaniekodupozostaływwiększościniezmienione.
Dlaczegooptymalizacjajestkonieczna
MaszynyJavaScript,którew1996r.obsługiwaływitrynyzkilkudziesięciomawierszami
koduJavaScript,nadaltakiesame,jednakdziśobsługujątysiącewierszykoduJavaScript.
PodwielomawzględamizarządzaniejęzykiemJavaScriptidziałaniawstępnewprzeglą-
darkachnienadążazapotrzebami,copozwoliłobymuodnieśćprawdziwysukces.Stało
siętooczywisteprzywprowadzeniuInternetExplorer6,którynapoczątkubyłchwalony
zastabilnośćiszybkość,jednakszybkozaczętogokrytykowaćjakookropną,powolną
izawierającąbłędyplatformę.
WrzeczywistościIE6wcaleniestałsięwolniejszy,musiałpoprostuwykonywaćwięcej
zadańniżwcześniej.Wczesne,tworzonew2001r.(gdywprowadzanoIE6)aplikacjeWeb
byłyowielelżejszeiwmniejszymstopniukorzystałyzJavaScriptniżaplikacjetworzone
wroku2005.RóżnicailościkoduJavaScriptstałasięoczywista,gdypojawiłysiępierw-
szeproblemyzwiązanezestatycznąprocedurąoczyszczaniapamięci.Abyustalić,czy
należyoczyścićpamięć,maszynaJavaScriptsprawdzała,czyliczbaobiektówwpamięci
przekroczyłaustalonąwartość.WczesneaplikacjeWebrzadkozbliżałysiędotegoprogu,
alewięcejkoduJavaScriptoznaczawięcejobiektów,więcbardziejzłożoneaplikacjeWeb
zaczęłyczęściejgoosiągać.Problemstałsięwyraźny:programiściJavaScriptiaplikacje
Webszlidoprzodu,amaszynyJavaScriptnie.
Pomimożeinneprzeglądarkimiałybardziejlogiczneiniecowydajniejszeprocedury
czyszczeniapamięci,dowykonywaniakoduwwiększościznichnadalbyłużywanyin-
terpreterJavaScript.Interpretacjakodujestzzałożeniawolniejszaniżkompilacja,gdyż
trzebauruchamiaćprocestranslacjikodunainstrukcjekomputera.Niezależnieodtego,
jaksprytneizoptymalizowanebędąinterpretery,zawszebędąnegatywniewpływać
nawydajność.
Kompilatorypełneróżnegorodzajuoptymalizatorów,którepozwalająprogramistom
nadowolnepisaniekodubezzastanawianiasię,czyjestonnajlepszy,czynie.Kompilator
możedokonaćanalizyskładniowejiokreślić,cokodpróbujezrobić.Następniegozopty-
malizuje,tworzącnajszybszykodmaszynowydowykonaniazadania.Interpreterymają
x
|
Wprowadzenie