Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web Storage

Web Storage

Talk given in March 2011

Avatar for Sebastiano Armeli

Sebastiano Armeli

March 09, 2011
Tweet

More Decks by Sebastiano Armeli

Other Decks in Programming

Transcript

  1. Why Web Storage? • Performance • Speed • Reduced load

    on the servers • Offline applications • Transaction - HTTP stateless Sunday, 20 February 2011
  2. History of Client-side Storage •HTTP Cookie • userData Behaviour in

    IE 5.5 • Local Shared Objects in Adobe Flash • Google Gears Sunday, 20 February 2011
  3. Web Storage • by WHATWG / W3C • HTML5? Actually

    not... • 2 Storage Areas : • localStorage • sessionStorage • globalStorage HTML Sunday, 20 February 2011
  4. Storage API interface Storage { readonly attribute unsigned long length;

    DOMString key(in unsigned long index); getter any getItem(in DOMString key); setter creator void setItem(in DOMString key, in any value); deleter void removeItem(in DOMString key); void clear(); }; Sunday, 20 February 2011
  5. localStorage • localStorage.setItem(“key1”, “value1”); localStorage.setItem(“key2”, “value2”); • localStorage.getItem(“key1”); // “value1”

    • localStorage.length; //2 • localStorage.removeItem(“key1”); • localStorage.length; // 1 • localStorage.clear(); • localStorage.length; // 0 Sunday, 20 February 2011
  6. sessionStorage • sessionStorage.setItem(“key1”, “value1”); sessionStorage.setItem(“key2”, “value2”); • sessionStorage.getItem(“key1”); // “value1”

    • sessionStorage.length; //2 • sessionStorage.removeItem(“key1”); • sessionStorage.length; // 1 • sessionStorage.clear(); • localStorage.length; // 0 Sunday, 20 February 2011
  7. Storing Objects • Key/value pairs • Value is a STRING!

    • Stringify / Parse JS Objects • JSON.stringify(myObject); • JSON.parse(myString); Sunday, 20 February 2011
  8. Storage Event • “storage” event • Triggered when Storage Areas

    change • Binded on Window • Attributes: • key, • oldValue • newValue • url Sunday, 20 February 2011
  9. Support • IE 8+ • FF 3.5+ • Safari 4+

    • Chrome 7+ • Opera 10.6+ • iOS Safari 4.0+ / Android 2.2+ Sunday, 20 February 2011
  10. Advantages (over Cookies) • Saving Bandwith • Size • Sessions

    not leaking • Network sniffing Sunday, 20 February 2011
  11. Limitations • 5 Mb (or 10Mb) • “QUOTA_EXCEEDED_ERR” • “SECURITY_ERR”

    • Storage per origin • Cross directory attacks -> DO not USE it! • DNS Spoofing -> SSL Sunday, 20 February 2011
  12. The future of Web Storage • Store data that rarely

    change • Mobile Sites • Offline apps • More Storage? Index Database API Sunday, 20 February 2011