Laske virheet

Ajax
Internetin ohjelmointikieli, joka parantaa nettiselaimen käyttöä. Nettisivun sisältö päivittyy automaattisesti, ilman päivitys- eli refresh-klikkausta. Ajax yhdistelee verkkosovelluksia ja koodauskieliä: esimerkiksi karttapalvelun ja lumimäärän yhdistelmä antaa yhdellä silmäyksellä tietoa hiihtokeskuksen sijainnista ja lumitilanteesta. Ajaxin avulla käyttäjät voivat myös vaivatta rakentaa itselleen oman nettisivun, johon voi poimia sisältöä eri lähteistä. Esimerkkejä Google Maps, Netvibes, www.live.com.

(Helsingin Sanomat 29.1.2006, E1)

Itse löysin 7.

Älä uudelleenohjaa virheen sattuessa

ASP.NET:ssä voi asettaa mukautetun virheilmoitussivun kullekin HTTP:n tilakoodille (esimerkiksi 404 tai 500). Kun virhe sattuu, käyttäjä uudelleenohjataan sopivalle sivulle. Tässä tavassa on ainakin kolme asiaa väärin:

  1. Jos kävijä kirjoitti osoitteen käsin ja teki virheen, ei tuota virhettä voi helposti korjata, koska osoite vaihtuu.
  2. HTTP-viestiketju on kummallinen. Pyydetty resurssi löytyi, mutta osoitteessa, jota ei ole tai jossa sattui palvelinvirhe. Anteeksi mitä?
  3. Palvelinvirheen (500) sattuessa olisi fiksua näyttää viesti, jossa yhtenä vinkkinä kehotetaan yrittämään hetken kuluttua uudelleen. Jos tälle sivulle on uudelleenohjattu, ei toimintoa voikaan enää yrittää vain sivua päivittämällä. Käyttäjä saattaisi odottaa jotain muuta.

Esimerkki: MSDN:n kotisivu on msdn.microsoft.com. Voisi siis hyvin arvata, että ladattavat tiedostot löytyisivät osoitteesta http://msdn.microsoft.com/download/. Kokeile tuota osoitetta ja katso mitä tapahtuu. Oikea polku olisi ollut “downloads”, mutta yritäpä korjata se yhdellä näppäimellä nyt, kun osoite onkin http://msdn.microsoft.com/404/default.aspx.

(ASP.NET:ssä tämän voi korjata tarttumalla virheeseen Application_Error-metodissa global.asax:n codebehindissa ja tekemällä Server.Transfer:n oikeaan osoitteeseen. IIS:ssä ei ole tätä ongelmaa, vain ASP.NET:ssä.)

Osoitteettomat linkit

Web-sivujen kävijä voi periaatteessa toimia sivuston kanssa vain kahdella tavalla. Hän voi klikata linkkiä tai lähettää lomakkeen painamalla nappulaa.

Kysymys kuuluu, mistä tietää, milloin on syytä tehdä linkki ja milloin taas käyttää lomaketta. Tietysti valinnan voisi tehdä sattumanvaraisesti ja valita mikä tuntuu sopivimmalta, kuten aina ennenkin. Mutta jos vaikka ensi kerralla ei enää?

Jos katsoo esimerkiksi Gmailin saapuneet viestit -näkymää, saattaisi asetukset-linkin avaaminen uuteen ikkunaan tai välilehdelle tuntua triviaalilta toimelta. Teksti on väritykseltään sininen. Se on alleviivattu. Silti sen kanssa ei voi toimia kuin tavallisen linkin. Lähdekoodin tasolla näkyy tällaista: <span class="lk" id="prf_g">Settings</span>, joten klikkaamista lukuun ottamatta epälinkkiä ei voi käyttää kuten oikeaa.

Oikean linkin voi lisätä suosikkeihin tai kirjanmerkkeihin. Linkin osoitteen voi kopioida ja liittää pikaviestikeskusteluun. Linkin voi avata toiseen selainikkunaan. Mikään näistä ei toimi hyvin tai ollenkaan, jos a-elementtiä käytetään käynnistämään toiminnallisuutta, joka ei liity toiseen osoitteeseen siirtymiseen.

Peukalosääntönä voi pitää, että linkkiä voidaan käyttää vain, jos haluttu toiminto on siirtää käyttäjä toiseen URL-osoitteeseen. Tässä yhteydessä voi silti hyvin tehdä muitakin toimia, esimerkiksi suorittaa JavaScript-koodia, olettaen, että toimet ovat toissijaisia. Esimerkiksi tiedon välittäminen klikkauksesta palvelimelle statistiikkatarkoituksissa tai linkin osoitteen avaaminen ponnahdusikkunaan ovat tällaisia toimia. Ilman niitä sivu tai sovellus voi jatkaa toimintaansa normaalisti.

Kaikkiin muihin toimiin tulisi käyttää lomaketta ja painiketta — tai mitä tahansa muuta käyttöliittymäelementtiä, kunhan se ei muistuta linkkiä. Ei ole väliä onko toiminnon tarkoitus lähettää lomakkeen tiedot palvelimelle tai suorittaa nokkelaa JavaScriptiä.

Joten ei. Ei <a href="#" onclick="teeJotain();">Klikkaa tästä!</a> eikä varsinkaan <a href="javascript:popup('http://www.example.org/')">Klikkaa tästä!</a>.

Käytä linkkiä vain, kun on URL-osoite mihin osoittaa. Käytä aina oikeaa linkkiä: a-elementtiä, jossa URL on href-attribuutissa.

Uudet Intel-Macit

Applen tänään julkistamat Intel-pohjaiset Macit yllättivät monet, sillä laitteiden piti olla valmiina vasta muutaman kuukauden päästä. Intelin 32-bittiseen tuplaydinprosessoriin pohjaavat uudet PowerBookit MacBook Prot ja (taas) uudet iMacit lupaavat moninkertaisia tehoja.

Julkistus oli kuitenkin hiukan puolivillainen. Kömpelöltä kuulostava uusi MacBook Pro -nimi heijastuu myös itse laitteeseen: kokovaihtoehtoja ei ole ja ainoan koon 15,4 tuumaa näyttöä ja 2,54 kiloa painoa on monille liikaa. Muita kokoja tullee ilmeisesti myöhemmin. Toisaalta tehoja luvataan jopa 4 kertaa enemmän kuin vanhoissa G4-prosessorisissa oli.

Uusi iMac näyttää kaikin puolin hyvältä. Tehoja piisaa, eikä hintakaan ole niin hirvittävä kuin MacBookilla. En keksi muuta itkun aihetta kuin sen, että oman, reilun puoli vuotta vanhan iMac G5:n jälleenmyyntiarvo tippui kertaheitolla rajusti.