Nykyään jokaisella rannekellolla, jääkaapilla, kännykällä ja taulu-TV:llä voi surffata netissä. Niinpä sivustojen on oltava entistäkin skaalautuvampia ja räätälöidympiä asiakkaan laitteesta riippuen.
Käyttöliittymään ladattavien elementtien (ja niiden ominaisuuksien) olisi usein hyvä olla riippuvaisia mm. asiakkaan verkon nopeudesta, suorituskyvystä (= kyky suorittaa JavaScriptiä) ja vaakaresoluutiosta. Myös tieto user agentista on yleensä tarpeellinen.
Koska tarve on yleinen ja yleistyvä, voisin kuvitella että on jo olemassa kirjasto, joka mahdollistaa esim. <pre>if clientPerformanceLevelIsLowerThan(4) { // foobar }</pre> -tyyppisen ehdollisesti luotavan käyttöliittymän rakentamisen. Herää kysymys: onko sellainen jo olemassa?
Tavallisilla tietoa tarjoavilla sivustoilla asiakkaan suorituskyky ei saa olla ongelma. Josset voi esittää asiaasi ilman massiivisia efektejä, teet jotain väärin. Jos taas ollaan suunnittelemassa esim. pelejä tai jotain muuta interaktiivista sisältöä, jossa suorituskyvylläkin on merkitystä, niin tällöinkin valitaan se pohjataso, jota asiakkailta voidaan edellyttää, eikä siihen tarvita enää mitään testejä sen jälkeen.
Nettiyhteyden nopeus on myös aika irrelevantti asia, kun 3G-nettikin voi olla nopea, mutta kaistan tuhlaaminen on silti huono idea, koska datan siirtämisen määrälle voi olla rajoituksia.
Kiinnostavat ongelmat nykyään ovat selainten CSS3- ja HTML5-tuki. Näiden asioiden tutkimiseen on mm. Modernizr-kirjasto. Lisäksi CSS3:ssa on media query -ominaisuus, jonka avulla voi suht simppelisti määritellä erilaisille näytöille (resoluutioille) sopivia ulkoasuja.
Tulevaisuudessa pystymme tarkistamaan verkkoyhteyden tyypin sekä nopeuden suoraan selaimelta.
http://www.w3.org/TR/netinfo-api/
Miten sitten hyödynnät järkevästi tämän tiedon, on hyvä kysymys.
Onhan siinä tiettyjä etuja esim. paikannuksessa tietää minkä tyyppinen verkkoyhteys käyttäjällä on, ja tarjotaanko ihan sitä raskainta HD kuvaa käyttäjälle.
Toki verkkoyhteys (tyyppi ja nopeus) voi muuttua, jolloin "user experience" muuttuisi yllättäen (huonossa toteutuksessa), tämä voisi olla hieman hämmentävää käyttäjälle.
Kiitos vinkeistä! Niissä oli hyviä ajatuksia. Haluaisin silti kommentoida tarpeeni mielekkyyden kyseenalaistamista.
On mielestäni viisasta käyttää esim. JavaScriptiä sivuston käytettävyyden ja näyttävyyden parantamiseen, koska näppärän oloisesti toimiva sivusto on yksinkertaisesti sivuston omistajan brändin kannalta edullista. Brändin omistajan kannalta on kuitenkin epäedullista, jos sivusto tökkii huonoilla (tai mobiileilla) tietokoneilla. Olemme tästä varmaankin yhtä mieltä. Tämähän on saman kaltainen asia kuin IE-kohtaiset CSS-eksepsönit.
Annan esimerkin. Asiakkaallani on sivusto, jossa taustakuva skrollautuu hitaammin kuin sisältö. Tämä luo 3D-efektin mikä puolestaan luo mielikuvaa modernista sivustosta ja siten modernista brändistä. Vaikka efekti ei ole äärettömän massiivinen, se tökkii mm. iPadillä. iPadin voin karsia mm. user-agentin perusteella, mutta maailmassa on myös kourallinen kökköjä koneita, joilla skrollausefekti tökkii. Niinpä haluaisin tuottaa myös heille mukavan käyttökokemuksen.
Kysehän on siis aivan vastaavasta tarpeesta kuin mihin Modernizr-kirjasto vastaa, joten tarve lisätä tai poistaa efektejä asiakaskoneen suorituskykyyn perustuen ei mielestäni perustu tyhmyyteen tai asioiden väärin tekemiseen; tarve perustuu erilaisten päätelaitteiden äärimmäiseen monimuotoisuuteen, brändin kirkastamiseen ja käyttökokemuksen optimointiin.
Sitten siirryn siihen itse asiaan.
Nettiyhteyden nopeus on tosiaan tärkeä tieto siksi, että edgellä prutkutteleville ei välttämättä kannata laittaa ruutuun introvideota lainkaan. Heidät kannattaa mieluummin ohjata sivustolle ilman turhia välivaiheita. Niinpä tuo netinfo-api vaikuttaa todella mielenkiintoiselta vaihtoehdolta. Olisi kyllä huippua saada vielä selville jonkinlainen asiakkaan JS-suorituskykyluokitus.
Mitä luulette, miten pienessä ajassa asiakaskoneen JS-suorituskyvystä voidaan saada luotettavaa tietoa tarjoamalla sille laskutoimituksia? Jos luotettavan tiedon saaminen veisi esimerkiksi sekunnin, se olisi luonnollisesti liikaa. Mutta jos se onnistuisi esim. 0,2 sekunnissa, vaihtoehdosta tulisi varteenotettava. Entä mitenköhän pitkälle vietyjä johtopäätöksiä asiakaskoneesta voidaan tehdä esim. matemaattisten laskutoimitusten perusteella?
Suorituskykyä tietyssä tehtävässä ei voi arvioida sattumanvaraisilla benchmarkeilla. Jos haluat tunnistaa selaimet, jotka eivät haldaa tuota taustakuvan liu'utusta riittävän pehmeästi, niin sinun pitäisi osata kehittää suorituskykytesti, joka tunnistaa juuri siihen liittyvät ongelmat. Ja silloinkin voi käydä niin, että samalla testi tunnistaa virheellisesti muitakin efektejä hitaiksi. Yleisesti ottaen et voi testata suorituskykyä sivujen renderöinnissä tekemättä sivujen renderöintiä.
Lisäksi selaimet ovat hyviä valehtelemaan. Omissa testeissäni Firefox ja Chrome antavat tietynlaisissa animaatioissa saman fps:n (60), vaikka Firefoxin "visuaalinen fps" on tosiasiallisesti korkeintaan kolmanneksen siitä. Jos rendaus kusee eikä edes selain itse tiedä sitä, niin suorituskyvyn testaaminen on mahdotonta.
Tuo käsityksesi "modernin brändin" luomisesta on kyllä oudonpuoleinen.
Kiitos tiedosta, pitää katsoa, saisiko noilla infoilla tehtyä riittävän tarkan testin.
Tosiaan, ei ole mielestäni sinun eikä minun tehtäväni määritellä sitä, mitä minun asiakkaani haluaa. Minulle on siis aivan lapsellisen sama, mitä (laillista) minulta tilataan, jos minulle maksetaan siitä riittävästi.
Lisäksi olen tässä kohtaa asiakkaani kanssa samaa mieltä; erottuvuus on tärkeä tekijä huomiotalousmarkkinoilla ja muutamat efektit tuovat mukanaan myynnin kannalta enemmän etuja kuin haittoja. Vaikka sivusto räjähtäisi prosentilla käyttäjistä mutta kokonaisuus lisäisi myyntiä, myyjän ratkaisu on päivänselvä.
Markkinointi- ja brändäysstrategiat tai niiden peliteoreettinen arviointi eivät tosin taida olla tämän foorumin tai ainakaan tämän viestiketjun fokuksessa, joten ehkä se siitä.
Eiköhän brändäyksen osa-alueena kannata pitää myös käytännöllisyyttä, jotta kohdeyleisönä olisi mahdollisimman laaja asiakaskunta. Vaikka nykyään saa tehtyä vaikka kuinka hienoja silmäkarkkisivustoja, jostain syystä hyvin brändätyt sivustot ei komeuksia paljon sisällä. Esim Ferrarin sivut. Hienosti tehdyt (vaikkakin sharepointin päälle joka tuo luonnollisesti raskautta sivunlatauksiin), ja siisteys toimii enemmänkin hyvän brändiin sopivan värimaailman, leiskan ja laadukkaiden kuvien kautta.
Olen lähtökohtaisesti samaa mieltä ylimääräisen karkin käytöstä, mutta teille ilmeisesti skrollausefekti ja introvideo ja niiden käyttäjäkohtainen skippaaminen on liikaa. Pystyn elämään sen kanssa. Mutta eiköhän tämä nyt ollut tässä? Jos väsään tähän tarkoitukseen esim. jQuery-plugarin, en tule kotiinnne pakottamaan teitä käyttämään sitä. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.