Luin äskettäin kirjan nimeltä jQuery in Action. Se sai minut oivaltamaan miten JavaScriptiä kuuluu nykyään tehdä. JavaScript on muuttunut aika radikaalisti kuluneiden Ajax-vuosien aikana.
Kaiken perustana on tietysti nykyään objektiorientoituneisuus. JavaScript on OO-kielenä oikein kehittynyt ja toimiva juuri siihen tarkoitukseen, mihin sitä käytetäänkin. jQuery in Action -kirjan lopussa onkin hyvä tiivistelmä siitä, miten JavaScript-objekteja luodaan, miten closuret toimivat ja mitä "this" oikeastaan tarkoittaa.
jQuery-kirjasto itsessään ratkaisee oikeastaan kaksi JavaScriptin pahinta ongelmaa: jäyhän W3C DOM -mallin hankalakäyttöisyyden sekä eri selainten pienet eroavaisuudet JavaScript-rajapinnoissa. Jälkimmäinen on käyttäjän kannalta no-brainer: kaikki toimii yhtenäisellä tavalla selaimesta riippumatta. Varsinkin eventtien käsittelyssä tämä on korvaamaton apu.
DOM-puun käsittelyssä jQuery taas loistaa "wrapped set" -ajattelullaan. Perinteisellä JavaScriptillä saattaisi törmätä esimerkiksi tällaiseen koodinpätkään, joka vaihtaa tiettyjen linkkien väriä:
container = document.getElementById('container'); for (i = 0; i < container.childNodes.length; i++) { if (container.childNodes[i].nodeName == 'a') { if (container.childNodes[i].style.className == 'link') { container.childNodes[i].style.color = '#000000'; } } }
jQuerylla sama vaihto tehtäisiin yhdellä rivillä näin:
$('#container a.link').css('color', '#000000');
Yksinkertaisuus vain korostuu, kun tehdään monimutkaisempia hakuehtoja ja tarvitaan animaatioita jne. Itse olen sen verran vaikuttunut jQueryn eduista, että aion käyttää sitä jatkossa kaikissa Ajax-projekteissa ja muutenkin webbisivujen kehityksessä.