Bokomtale: Bulletproof Ajax av Jeremy Keith

Jeg ble i en kommentar i en tidligere post spurt om hva jeg syntes om Bulletproof Ajax (hjemmeside, amazon), som jeg i teksten nevnte at jeg holdt på å lese. Nå er boka ferdiglest og jeg er klar til å uttale min omtale om boken. Det vil si, jeg leste boka ferdig for en uke siden eller så, men har først nå tatt meg tiden til å skrive dette. Har også latt lærdommen fra boken få leke seg i hodet gjennom denne uka.

Ajax er et velkjent ord som er blitt brukt i flere tilfeller, men innenfor webteknologien var det først en forkortelse for Asynchronous Javascript and XML, og ble først smidd av Jesse James Garrett i februar 2005. Han beskrev en ny måte å behandle nettsiders interaksjon med serveren gjennom bruk av javascript og den til da ukjente funksjonen XMLHttpRequest. En vanlig misforståelse av forkortelsen er at XML er essensielt for begrepet. Først og fremst er det begrepet XMLHttpRequest som det refereres til, for det andre har Ajax utvidet sitt begrep til å omfatte langt mer enn XML-formaterte filer (som f.eks. JSON).

Ajax er blitt et moteord godt brukt av webteknologi-nerder rundt om på det store nett. Jeg skal innrømme at jeg hadde en misoppfatning av ordet før jeg leste boka. Heldigvis begynner boka med å nettopp greie ut om begrepet. En viktig egenskap med boka er at så lenge du tar forfatterens ord for god fisk (festlig uttrykk forresten), så kan du forvente en fin gjennomgang av begreper og uttrykk. Så sier også Keith i innledningen at denne boka ikke er for hardcore-programmererer, men snarere for nettside-utviklere som ønsker en introduksjon til Ajax og tilgangen til noen eksempler slik at de selv kan begynnne å kode med Ajax-teknologien i hende.

Jeremy Keith leverer varene. Starten av boka går for det meste ut på å beskrive begreper og introdusere leseren for javascript så vel som DOM (Document Object Model). Han legger opp til at skriptene skal skrives gjennomført og «bulletproof». Boka lever da også opp til navnet sitt ved at alle ferdige eksempler som presenteres for leseren skal være skuddsikre.

Men det viktigste som kommer frem i boken, mener jeg, er begrepet Keith presenterer; Hijax. Dette må ikke forveksles med javacsript-biblioteket Hijax, men snarere et begrep Keith bruker for å forklare sin fremgangsmåte for å implementere Ajax på nettsider. For begrepet Bulletproof betyr ikke bare at nettsider skal være sikre for hackere, det betyr også at alle skal kunne bruke nettsider, uavhengig av nettleser, operativsystem og lesevansker (fra de med dårlig syn til de blinde). Dette er et konsept som ofte blir forbigått av mange webutviklere, da vi ser sider som er begrenset til enkelt nettlesere (for det meste IE og Firefox). Det er forståelig at man tar denne predisposisjonen, da disse nettleserne har flest brukere, men det er også dumt siden du da utelukker evt. brukere. Dette mener Keith ikke er akseptabelt for nettsider som skal ha profitt.

Hijax går ut på at sider skal være backward compatible (kom ikke på noe godt norsk ord i farta (bakover kompatible? høres ikke bra ut)), altså at de skal levere alle sine funksjoner uavhengig om Ajax er til stede eller ikke. Dette er for å gjøre opp for Ajax’s akilleshæl: er javascript skrudd av funker det ikke.

Hijax-fremgangen er da at man gjennom DOM «tar over» deler av siden, som f.eks. lenker og submit-knapper, de delene av sidene som vanligvis fører til at serveren blir bedt om å sende en ny side med informasjon. Keith leverer da også hele skript i boka som skal gjøre denne jobben for oss.

Jeg er veldig fornøyd med boka, siden den har presentert begrepet Ajax på en ordentlig måte for meg og har introdusert meg fremgangsmåten Hijax. Jeg har ikke prøvd ut eksemplene noe særlig enda, men har tiltro at de skal fungere som Keith forklarer. Jeg vil anbefale boka for dem som identifiserer seg med å være på mitt «nivå» av webteknologi, altså at jeg aldri har hatt det som studie, men har en interesse for det som hobby. For folk som koder mye med javascript og føler at de behersker DOM, gir ikke denne boken mye nytt. Trolig er da eneste interessante lærdommen Hijax-fremgangen.

Advertisements

4 Svar til “Bokomtale: Bulletproof Ajax av Jeremy Keith

  1. Bakoverkompatibel er et ord som både finnes brukes, og funker. Ser at butikker som selger data-ting bruker det.

    Ellers er jeg keen på å se noen kodeeksempler. «Dette kan du bruke det til, og slik lager du der: her er den godt kommenteret koden.» 🙂

    Om du lærer noen kule greier, så må du poste det her 🙂

  2. Tja, om du ønsker eksempler så har du jo http://bulletproofajax.com/code/, hvor alle eksemplene til boka ligger.

    Jeg synes da at det siste eksemplet, http://bulletproofajax.com/shop/, er det tøffeste, hvor du har http://bulletproofajax.com/shop/javascript/hijax.js som det kanskje viktigste dokumentet (that’s where all the magic happens;)).

    Når det kommer til å levere grundige gjennomganger av disse eksemplene, så har jeg ikke brukt de nok til å gjennomgå de skikkelig. Kunne selvfølgelig tatt «copy&paste» fra boka, men dette ville også blitt feil føler jeg.

    Kanskje vi skulle oppfordret vår gode venn Harald om å starte en blog og gi oss noen saftige eksempler der?=)

  3. Da Keith primært bruker Hijax som betegnelse på sin fremgangsteknikk for implementering av Ajax, så blir ikke noen av bibliotekene sammenlignet. Men Keith nevner sluttvis i boka at det finnes flere bibliotek/rammeverk/verktøybokser med øye for å gi deg tilgang til populære Ajax-features.

    Han lister opp og gir en beskrivelse for hver enkelt av disse:
    Prototype – http://prototype.conio.net/
    Scriptaculous – http://script.aculo.us/
    Mochikit – http://mochikit.com/
    Jquery – http://jquery/
    YUI – http://developer.yahoo.com/yui/

    Andre blir bare nevnt:
    Dojo – http://dojotookit.org/
    Mootools – http://mootools.net/

    Keith peker på tre forhold som er viktig å se på når du vil implementere disse ferdige bibliotekene: Størrelse (alle sider skal jo laste inn skriptet), dokumentasjon (skal du bruke tid på å sette deg inn i skriptet, må du ha mulighet til å lese om funksjonalitetene dens) og – ikke minst – nettleser støtte.

    Hjelper dette deg? Lykke til videre i prosjektet deres;)

Legg igjen en kommentar

Fyll inn i feltene under, eller klikk på et ikon for å logge inn:

WordPress.com-logo

Du kommenterer med bruk av din WordPress.com konto. Logg ut / Endre )

Twitter picture

Du kommenterer med bruk av din Twitter konto. Logg ut / Endre )

Facebookbilde

Du kommenterer med bruk av din Facebook konto. Logg ut / Endre )

Google+ photo

Du kommenterer med bruk av din Google+ konto. Logg ut / Endre )

Kobler til %s