Web-applikationer - offline

BLOG: Det er ikke altid muligt at være online - og det skal dine web-applikationer tage hensyn til i fremtiden.
Skrevet i Nørderier


Publiceret d. 18. februar 2010 kl. 18.04


 
ANNONCE:
En af mine venner, Tomas Krag, spurgte mig fornylig om jeg havde styr på HTML 5. Mit typiske svar er: ja, men giv mig lige et par dage. Grunden til at han spurgte var, at HTML 5 har mulighed for at lade web-applikationer gemme data lokalt i browseren mellem sessioner. Ikke bare i form af cookies, men rigtige data. Tricket ved at bruge local storage, kan din web-applikation køre videre når du er offline. Det kræver naturligvis at du skriver det meste af din web-applikation i Javascript.
jQuery-modul
Tomas ved godt at jeg skriver en masse i Javascript - derfor spurgte han mig og ikke en anden ven. HTML 5 understøttes ikke af alle web-browsere, og ingen web-browser har implementeret al HTML 5. Heldigvis skulle Drupal bruges som CMS - og Drupal bruger jQuery som Javascript framework. En løsning til alle browsere med et jQuery-modul kunne derfor bruges.

Modulet jStore er et jQuery som netop giver web-udvikleren mulighed for at bruge local storage. I de tilfælde hvor HTML 5 er implementeret, bruger jStore det, men andre tilfælde kan Flash bruges eller noget helt tredje. i jStore-terminologi er er tale om forskellige storage engines. Alt i alt er alle browsere understøttet.
Eksempel
Det er ikke så svært at bruge jStore. Du skal naturligvis inkludere jQuery og jStore i dine HTML-sider, men så er du også klar.

Først skal jStore initialiseres. Du kan overlade valget af storage engine til jStore. En enkel initialisering kunne være:

jQuery(document).ready(function() {
console.log("Initializing storage");
jQuery.jStore.ready(function(engine) {
engine.ready(function() {
console.log("Engine ready: "+engine.jri);
});
});
jQuery.jStore.fail(function(engine) {
console.log("Engine failed: "+engine.jri);
});
jQuery(function() {
console.log("Loading");
jQuery.jStore.load();
console.log("Ready");
});
});

OK, der er et par callback-funktioner - men sådan er moderne Javascipt.

Med jStore får du et fælles API til alle engines, og derfor bliver det let at gemme og hente data i local storage.

function ru_save() {
console.log("About to save");
var fields = $(":input").serializeArray();
jQuery.each(fields, function(i, field) {
console.log("Saving "+i+" as "+field.value);
jQuery.jStore.CurrentEngine.set("ru_"+i, field.value);
});
}


function ru_load() {
console.log("About to load");
var fields = $(":input").serializeArray();
jQuery.each(fields, function(i, field) {
console.log("Loading "+i);
var value = jQuery.jStore.CurrentEngine.get("ru_"+i);
jQuery('#'+field.name).val(value);
console.log("Value is "+value);
});
}

De to funktioner hhv. gemmer og henter data som passer med felterne i en HTML-form
Lidt reklame
Her til slut vil jeg lige reklamere lidt for mig selv. Den 6. marts 2010 giver jeg en 2-timers tutorial om Javascript ved Open Source Days 2010. Efter min tutorial vil Tobias Oetiker give en tutorial om jQuery. Så er du udvikler som skal til at begynde at skrive i Javascript, tror jeg at du vil få stor udbytte af den lørdag.

Kommentarer til blogindlæg



Kommentér
Ytringer på debatten er afsenders eget ansvar - læs debatreglerne

Mere fra Nørderier


I forbindelse med Naturvidenskabsfestivalen har jeg idag givet et foredrag om grafteori for to 9. klasser.
30. september 2010 kl. 17.28 | læs »



Idag er det Ada Lovelace dag. Eller rettere, dagen for kvinder i
IT-branchen og datalogien. Måske virker det lidt underligt at jeg - som mand - sidder og skriver og kvinder i IT. Det er ikke fordi, jeg ikke kender kvinder, som arbejder med IT. Jeg kender bare mindst 10 IT-mænd for hver IT-kvinde.
24. marts 2010 kl. 08.00 | læs »



Det er ikke altid muligt at være online - og det skal dine web-applikationer tage hensyn til i fremtiden.
18. februar 2010 kl. 18.04 | læs »



I morgen fredag er der forespørgelsesdebat i Folketinget omkring åbne dokumentformater. Muligvis er der - i følge Folketingets kalender - først afstemning tirsdag i næste uge.
27. januar 2010 kl. 22.15 | læs »



Kommer du til Open Source Days 2010 den 5. marts, kan du opleve Nokia Open 2010.
20. januar 2010 kl. 09.42 | læs »









Mest læste seneste uge

Kan gratis sikkerhedssoftware virkelig beskytte din pc? Svaret er ja, hvis du vælger det rette produkt. Læs her en test af de mest pålidelige gratis sikkerhedsprogrammer.

Næsten 200 IBM-ansatte får med få timers varsel sidste arbejdsdag i dag. Ingen var orienteret forud for dagens massefyring, som effektueres øjeblikkeligt.

Flyselskabet SAS har brugt op mod trekvart milliarder kroner og seks år på at udskifte sit bookingsystem. Undervejs har der været flere projekt-udfordringer, som kulminerede en vinternat med en big bang-migrering.

Her er forklaringen på, at IBM Danmark med direktør Lars Mikkelgaard-Jensen i spidsen fyrer 170 medarbejdere.

IBM Danmark lader hovederne rulle.