Lidt bedre $state

by Jesper september 10, 2009 09:19

Jeg fik lidt tilbagemelding på mine posts om persistering af klientside state – det jeg har valgt at kalde $state.

Det har voldt flere problemer at min implementering er ret hidsig i get metoden. Den smider en fejl, hvis man forsøger at “gette” noget der ikke findes i ordbogen (dictionary).

Jeg giver kritikerne ret i, at det er uheldigt at have et JavaScript objekt der smider fejl, når man ikke har nogen måde at teste for tilstanden på forhånd. Det kræver faktisk at man omslutter klientkoden i try-catch, og så synes de fleste jo nok at det bliver lidt besværligt.

Jeg overvejede at implementerer en containsKey metode, men synes kun den er marginalt bedre end at skulle fange fejl i try-catch. I stedet valgte jeg at give mulighed for at angive en default værdi, og alternativt returnerer null i tilfælde af manglende nøgle.

get: function(key, defaultValue) {
    /// Udleder værdien fra hash-staten
    if (typeof (_dict[key]) == "undefined")
        return defaultValue;
    return _dict[key];
},

Da JavaScript har dynamiske parametre til funktionskald, så vil kald til get uden defaultValue, blive tolket som null automatisk.

Code on…

Tags:

JavaScript | $state

Kommentarerne er lukkede

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen | Modified by Mooglegiant

About

Mit navn er Jesper Jensen, og jeg arbejder til dagligt som web-udvikler hos DGI, hvor mit speciale er klientside applikationer. Før det var jeg nogle år i robotbranchen, hvor jeg arbejdede med 3D simulering og system koordinering. Jeg elsker webudvikling, og specielt JavaScript har min interesse. Jeg har blogget om mine oplevelser med udvikling siden 2004

Calendar

<<  juli 2010  >>
mationtofr
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

View posts in large calendar

RecentComments

Comment RSS