1
May

Javascript och AJAX på rätt sätt

Kategorier: AJAX Javascript

Många är vi som gillar häftiga funktioner i Javascript och AJAX. Desto färre är det som vet vad termer som "graceful degradation" och "unobtrusive javascript" innebär. I grund och botten handlar det om huruvida besökare till din webbsida ska behöva ha tillgång till en viss teknik för att få komma åt all funktionalitet. Vad händer med de som inte har tillgång till en webbläsare med javascript?

"Graceful degradation" betyder ungefär "elegant nedgradering" och innebär att man i grunden har en teknisk lösning som fungerar utan javascript. Ovanpå detta bygger man sedan de mer avancerade funktionerna som är gjorda med javascript och AJAX. Detta gör att det inte blir något krav för användarna att ha tillgång till en specifik teknik för att kunna utnyttja funktionaliteten på din sida. Det finns flera tänkbara anledningar till varför besökare inte kan använda sig av avancerade funktioner, som exempel kan följande nämnas: handikapp (ex. skärmläsare för blinda), mobila enheter eller säkerhetskrav (javascript måste stängas av).

Ett enkelt sätt att testa hur elegant en webbsida nedgraderas är att helt enkelt slå av javascript i din webbläsare och sedan surfa in på sidan. Kan du fortfarande komma åt den viktiga informationen? Själv brukar jag se javascript och AJAX som en bonus och bara göra funktioner som förbättrar innehållet med dessa tekniker, inte funktioner som tillgängliggör informationen.

Några exempel på sidor som går sönder när man stänger av javascript är Datorbutiken och Fritidsresor. En sida som hanterar detta bättre är till exempel Prisjakt. Hos Prisjakt kan man fortfarande hitta lite fel och problem, men huvudfunktionaliteten finns där och fungerar utan javascript.

Den andra termen som den här artikeln tar upp är "unobtrusive javascript" vilket översätts till ungefär "icke påträngande javascript". Denna term är lite svårare att definiera. I första hand går den ut på att man ska separera innehållet (HTML) från funktion/beteende (javascript). Men många hävdar också att den går ut på att skriva javascript som använder sig av DOM-metoder och undviker webbläsarspecifika funktioner, att binda javascript till sidan utan att lägga till onödig html-kod och att använda sig av elegant nedgradering.

För att lyckas separera innehållet från beteendet på en sida krävs det att man inte använder sig av inline-javascript. Man bör heller inte lägga till onödiga attribut och html-element för att javascriptet ska fungera, det är lätt hänt att det blir väldigt mycket onödig HTML-kod som inte har någon betydelse förutom för just javascriptet.

Ett exempel på båda dessa tekniker är den nya sökfunktionen här på klientsidan. Stänger du av javascript kan du fortfarande söka, men du får ingen sökordskomplettering. Kikar du i källkoden på sidan ser du heller inte någon information som enbart används för javascriptet. Id på formuläret och klassen på submit-knappen används av CSS för utseendet, men används även av javascriptet för att "hitta rätt".

TYCKTE DU OM ARTIKELN?

Pusha

KOMMENTARER

#1. Skriven av Simeon den 27 Aug 2008

Detta beror lite på målgrupp och webbapplikationens syfte. Att påstå att detta är "rätt sätt" är att dra det hela ur sitt perspektiv, eftersom det numera går att skapa hela webbapplikationer i JS som långväga utkonkurrerar funktionaliteten och moderniteten i webbapplikationer utan JS. Jag tänker då inte på bonusfunktioner som sökordskomplettering, utan grundläggande funktioner som liknar eller ingår de i RIAs. Ett bra exempel på en med HTML/CSS ogenomförbar webbplats är docs.google.com

Utan dessa förs inte tekniken framåt, utan stannar på den konservativa nivån där internet är till för "ren informationsspridning" och inget annat. Använder man sig inte av JavaScript får man kort och gott skylla sig själv, som inte hänger med i teknikutvecklingen. Naturligtvis finns undantag åt andra hållet i och med anpassning för handikappade, mobila enheter och annat, men om ens webbplats är avsedd för dessa målgrupper (exempelvis en ren informationsplats eller shoppingsite för produkter till handikappade) vet man om detta och väljer ett sådant tillvägagångssätt.

Rätt för någon kan vara fel för den andre.

#2. Skriven av Stefan den 7 Sep 2008

Hej!

Som du säger är det rätt att applikationer som kräver JS för att ens existera inte kan ha samma funktionalitet utan JS. Däremot finns det väldigt ofta fall då en simplare version skulle fungera utan JS. Att tycka "Använder man sig inte av JavaScript får man kort och gott skylla sig själv" är ungefär samma sak som för ett par år sedan anpassade sidor till enbart IE eller en viss upplösning.

Var går gränsen för vad som är en site riktad mot en viss målgrupp? Ska handikappade inte få boka resor via nätet eller köpa andra icke handikappanpassade saker bara för att en bokningsdialog eller en webshop kräver javascript, när det skulle gå lika bra att göra en version utan javascript som är fullt fungerande, om än inte lika "flashig"?

Kommentera artikeln



RSS

SÖK BLAND ARTIKLAR

KATEGORIER

OM KLIENTSIDAN

Klientsidan.se är en privat site som skriver om klientdelen av webben. Här kan du hitta artiklar och information om HTML, XHTML, CSS, webbstandarder, semantik, AJAX, javascript, DOM och mycket annat. Har du några idéer eller synpunkter, tveka inte att skicka ett mail. Kontaktuppgifter finner du på kontaktsidan.