"JavaScript" yra vienas iš trijų svarbiausių žiniatinklio prieglobos elementų: be HTML (puslapio struktūra) ir CSS (pateikimas), objektinė programavimo kalba siūlo dinamizuoti turinį. Tačiau "JavaScript" galima naudoti ne tik kuriant puslapius. Serverio pusės programas taip pat galima valdyti naudojant "JavaScript".
"JavaScript" ištakos
Nepaisant pavadinimo, "JavaScript" turi mažai ką bendro su "Java". Iš pradžių skriptų kalba turėjo vadintis "LiveScript" ir buvo sukurta "Netscape", skirta "Netscape Navigator" sąveikai su "Java" programėlėmis (Java kliento programomis). "JavaScript", kaip iš tikrųjų nuosavybinė programinė įranga, buvo konkurencinis veiksnys tokioms bendrovėms kaip "Microsoft" atstovaujama. Šie į "JavaScript" plėtrą reagavo savais sprendimais, pavyzdžiui, skriptų kalba "JScript". Tačiau laikui bėgant "JavaScript" tapo pagrindine scenarijų kalba, dabar palaikoma visose naršyklėse, skirta kliento pusei ir (be php) serverio pusės dinamizavimas.
Kliento pusės dinamizavimas
Bene labiausiai naudojama "JavaScript" funkcija - galimybė dinamiškai veikti kliento pusėje. Klientas yra žiniatinklio naršyklė. Kliento pusės dinamizavimas reiškia, kad keičiamas konkretus kliento rodomas turinys. HTML - tai statinis svetainės struktūros aprašymas, vadinamasis dokumento objekto modelis (DOM). CSS (Cascading Style Sheets) naudojamas atskiram šio "karkaso" dizainui, o "JavaScript" suteikia galimybę perkelti, ištrinti ar pridėti HTML elementus.
Šį DOM manipuliavimą (DOM skriptų kūrimą) galima naudoti įvairiais būdais. Funkcijos iš pradžių susiejamos su tam tikrais įvykiais per vadinamuosius įvykių tvarkytuvus. Tai gali būti naudotojo paspaudimai, laikas ar net svetainės įkrovimas. Įvykiais pagrįstus pakeitimus galima sukelti naudojant HTML elementams priskirtus ID. Tai gali būti viskas - nuo paprastų dinaminių formų ar lentelių filtrų programavimo iki vaizdo įrašų grotuvų ar sudėtingos dinaminės grafikos įterpimo.
JQuery: Mažiau sudėtingas "JavaScript
"JavaScript" yra į objektus orientuotų programavimo kalbų pavyzdys. Todėl nepatyrusiems žiniatinklio dizaineriams yra gana aukštas įėjimo slenkstis. "JavaScript" biblioteka "JQuery" siūlo supaprastintą sintaksę, kuri leidžia greitai ir lengvai atlikti dažniausiai pasitaikančius naudojimo atvejus, tačiau labai neapriboja "JavaScript" funkcijų. Nors "JavaScript" su prototipų (vietoj klasių), egzempliorių (konkrečių objektų) ir metodų (su objektais susietų funkcijų) apibrėžtimis pasižymi panašiu sudėtingumu ir kintamumu kaip, tarkime, "Java" ar "Python", "JQuery" riboja žodyną ir struktūras. Komandas galima įterpti, todėl jų struktūrą galima suprasti gana greitai. Todėl, jei nėra sudėtingų, neįprastų programų, labai tikėtina, kad egzistuoja paprastas "JQuery" sprendimas.
Dinamizavimas serverio pusėje: AJAX ir Node.js
Be manipuliavimo DOM, "JavaScript" taip pat naudojamas ryšiui su serveriais palaikyti, pvz., duomenų bazės užklausoms. Nuo 2009 m. sukurta "node.js" - serverio pusės dinamizavimo naudojant "JavaScript" sistema. Tai buvo įmanoma dar iki 2009 m., tačiau node.js leidžia lengviau integruoti. Tai yra privalumas "JavaScript" programuotojams, nes jiems nebereikia naudotis kitomis kalbomis, pavyzdžiui, php. Be to, node.js taip pat leidžia lygiagretinti procesus. Tai yra privalumas, nes per daug šių vadinamųjų gijų gali sukelti sąstingį. Naudojant node.js, užklausos vykdomos vienu srautu, o tai gali gerokai padidinti našumą.
"Node.js" yra AJAX galimybių pavyzdys. Ši santrumpa reiškia procedūrą, vadinamą asinchroniniu "JavaScript" ir XML. Šis principas leidžia prašyti turinio iš serverių neperkraunant viso puslapio. Daugelyje interneto svetainių, pvz., "YouTube", visiškas perkrovimas po vaizdo įrašų užklausų ar komentarų įkėlimo būtų didelis trūkumas. AJAX taip pat sprendžia užklausų kaupimo problemą dėl asinchroninio apdorojimo, kaip pirmiau paaiškinta apie "Node.js".
"JavaScript" integracija
Pagrindinis "JavaScript" integravimas į žiniatinklio pasiūlymus vyksta lygiai taip pat, kaip ir ryšys su CSS failais. Yra dvi galimybės: Viena vertus, "JavaScript" galima naudoti HTML dokumento antraštėje, kita vertus, HTML dokumento turinyje.