A html 5 újdonságai közül az egyik igen hasznos kis jószág a storage, azaz a kliens oldali adat tárolás. Mivel a natív megoldás csak stringek tárolására használható írtam hozzá egy jQuery plugint ami teljes JSON objektumok tárolását és lekérdezését teszi lehetővé.

A sessionStorage és a localStorage arra szolgál, hogy a kliens oldalon tudjunk adatokat tárolni. Erre eddig csak cookie-val volt lehetőségünk. A storagenak két előnye is van a cookie-kkal szemben. az egyik az, hogy a storage-ban 5MB adatot tudunk tárolni ami jóval nagyobb mint a cookie-k maximális 4KB-ja. A másik előny, hogy amíg a cookie-kat a kliens mindig kiküldi a szerver felé, ha szükségünk van ott rá ha nem, a storage alapból csak a kliens oldalon létezik. Így mind a kommunikáció, mind az adatok elérése gyorsabb lesz.

Biztosan jó okuk volt arra, hogy nincs natív API arra, hogy teljes JSON objektumokat tároljunk el a storage-ban, de ez persze nem akadályozza meg a fejlesztőket abban, hogy márpedig mégiscsak tároljanak benne ilyesmiket. A kézenfekvő megoldás a JSON.stringify és a JSON.parse. Persze lépten-nyomon ezeket hívogatni egy idő után meglehetősen kellemetlen tud lenni. Ezt próbálja orvosolni az rStorage plugin.

A projekt elérhető a githubon.

Setter

var myObject = {
  level1 : {
     level2 : {
        level3 : 'level3'
     }
  }
}

$.localStorage('testNamespace', myObject);     //setter

Getter

$.localStorage('testNamespace');      //getter
$.localStorage('testNamespace.level1');      //dot notation getter

Törlés

$.localStorage.remove('testNamespace.level1.level2');

Észrevételeket, fejlesztési javaslatokat várok ide és a projekt oldalra.

rStorage

Egy gondolat a “rStorage” -hoz

  • 2014. szeptember 06. at 20:50:54
    Permalink

    Eloszor is koszi a plugin-t, hasznalom, szeretem. 🙂

    Az alabbi problemaba futottam:

    $.localStorage('user', userObj); // userObj egy json object
    $.localStorage('user.akarmi', mezo); // az 'akarmi' kulcs nem letezik, ezert hibat dob

    Ezt pl. ki tudom ugy kuszobolni, hogy:

    var userObj = $.localStorage('user');
    userObj.akarmi = mezo;
    $.localStorage('user', userObj);

    De ez egy kicsit korulmenyes. Szerinted lenne ertelme egy “append” funkcio hozzaadasanak a plugin-hez? Azaz, ha egy mar letezo object-hez szeretnek egy uj tulajdonsagot hozzafuzni, azt egyszerubben meg lehessen oldani (mint pl. a peldam masodik sora)?

    Válasz

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük