SlideShare a Scribd company logo
Local Storage for Web
Applications
T-111.5502 Seminar on Media Technology B P (4-8 cr)
Presentation

Markku Laine, M.Sc. (Tech.)
markku.laine@aalto.fi

                                November 22, 2011
Presentation Outline

•  Introduction
•  Evolution
•  Revolution: The HTML5 Approach
   –    Web Storage
   –    Indexed Database API
   –    Web SQL Database
   –    HTML5 Offline
•  Research topics
•  Conclusion


                               2
Introduction




        3
Conventional Interaction Model




                      4
Modern Interaction Model




                      5
Benefits of Local Storage

•    Reduces server load
•    Less data to be transferred
•    Faster websites
•    Enables offline support
•    Improves user experience




                                   6
Evolution




       7
Cookie

•  Conventional approach
•  Simple key-value pairs
•  Information via HTTP headers
    –  Extra overhead
•  Typically used for session
   management
•  Storage size limited to 4 kB
    –  Way too small for modern Web
       applications
•  Problems when running the same
   application in multiple windows
•  Supported by major browsers

                                      8
Local Shared Object (Flash Cookie)

•  Proprietary browser plug-in (Adobe
   Flash 6+, 2002)
•  Storage size limited to 100 kB per
   domain (can be increased)
•  ExternalInterface (Adobe Flash 8+,
   2006)
   –  Easy and fast access to LSOs
      from JavaScript




                                        9
(Google) Gears: R.I.P. 2007-2011

•  Open-source browser plug-in,
   http://gears.google.com/
•  Several major APIs: e.g., Database
   (SQLite), WorkerPool, LocalServer,
   Desktop, and Geolocation
•  Storage size unlimited per domain
•  Focus from Gears to HTML5 and
   associated APIs: Indexed
   Database API, Web Workers,
   Geolocation API
•  Does not support newer browser
   versions

                                        10
Revolution:
The HTML5 Approach




           11
Motivations

•    Standardized APIs
•    Native support by major browsers (no plug-ins)
•    Increase storage limitations
•    Persistent storage




                                   12
Web Storage
 Working Draft October 25, 2011
http://www.w3.org/TR/webstorage/




                    13
Overview

•  Beloved child has many names: HTML5 Storage, Local
   Storage, DOM Storage
•  Improved cookies
   –  Simple key-value pairs
   –  Stores data in a Web browser, persistently
•  localStorage (Persisted Cookies) and sessionStorage
   (Session Cookies) accessible via global window object
•  Enables running the same application in multiple
   windows
•  Storage size limited to 5-10 MB per domain (default)

                                       14
Examples and Demo

// Store persistent data
localStorage.setItem( ”key”, ”value” )
// Retrieve persistent data
localStorage.getItem( ”key” )
// Retrieve the name of the key
localStorage.key( number )
// Retrieve the number of key-value pairs
localStorage.length
// Remove persistent data
localStorage.removeItem( ”key” )

http://html5demos.com/storage

                                   15
Browser Support




                       Source: http://caniuse.com/#search=web%20storage


                  16
Indexed Database API
   Working Draft April 19, 2011
http://www.w3.org/TR/IndexedDB/




                   17
Overview

•  Beloved child has many names: IndexedDB,
   WebSimpleDB API
•  Newest of the three specifications
•  Simple values and hierarchical objects
•  An advanced version of Web Storage, support for
   –  Robust indexes
   –  efficient searching over keys
   –  duplicate keys (multiple values for a key)
•  Allows for advanced data scenarios on the client
•  Asynchronous database requests

                                         18
(Sync) Examples

// Open a database
var db = window.indexedDBSync.open( ”todos” );
// Open an object store
var objectStore = db.openObjectStore( ”todo”, 0 ); //
  read-write
// Add data to an object store
objectStore.add( { ”text”: ”todo text”, ”timeStamp”: new
  Date().getTime() } );




                                 19
Browser Support




                       http://caniuse.com/#search=indexedDB


                  20
Web SQL Database
Working Group Note November 18, 2010
 http://www.w3.org/TR/webdatabase/




                      21
Overview

•  Beloved child has many names: WebDB
•  As of November 18, 2010 a deprecated specification
   –  Not enough independent implementations
   –  All use SQLite as the database engine
•  Manipulate client-side databases using SQL
   –  A variant of SQL
•  Asynchronous database requests
•  The most advanced client storage specification




                                    22
Example and Demo

// Insert new tweet
t.executeSql( ”INSERT INTO tweets (id, screen_name, date,
  text) VALUES (?, ?, ?, ?), [tweet.id, tweet.from_user,
  tweet / 1000, tweet.text]” );


http://html5demos.com/database




                                 23
Browser Support




                       http://caniuse.com/#search=web%20sql%20database


                  24
HTML5 Offline
       Working Draft May 25, 2011
http://www.w3.org/TR/html5/offline.html




                        25
Research Topics




          26
Silo

•  A system that reduces both the number of HTTP
   requests and the bandwidth required to construct a page
•  Uses JavaScript and Web Storage à no plug-ins
   needed
•  The idea is to store JavaScript and CSS fragments in a
   local storage. When a web page is requested, only the
   server asks which fragments are missing and sends
   them to the client in one file




                                 27
Sync Kit

•  Client-server toolkit
•  Uses JavaScript and (Google) Gears
•  Offloads some data storage and processing from a web
   server onto the web browsers
•  Synchronizes relational database tables between the
   browser and the web server
•  Persists both data and templates across web sessions
•  Increases server load handling capability from 3 to 4
   times


                                28
Conclusion




       29
Comparison of Local Storage Options

Name                   Standard                      Features              Data type         Storage space    Browser support

Cookie                 IETF RFC 2109, IETF RFC       simple key-value      string            4 kB             all major
                       2965                          pairs, information    (serialization)
                                                     via HTTP headers
Local Shared Object    proprietary browser plug-in   alternative to        Flash data        100 kB per       all major via Adobe
(Flash cookie)         (Adobe)                       cookies,              types             domain (can be   Flash Player 6+ plug-in
                                                     accessible from                         increased)
                                                     JavaScript
(Google) Gears         open source browser plug-     relational            many              unlimited per    deprecated (old
                       in (BSD License)              database (SQLite)                       domain (SQLite   versions via Gears
                                                                                             limitations)     plug-in)
Web Storage            Working Draft                 simple key-value      string            5-10 MB (can     IE 8+, Firefox 2.0/3.5+,
                                                     pairs, no duplicate   (serialization)   be increased)    Chrome 4/5+, Safari
                                                     values for a key                                         4+, Opera 10.5+
Indexed Database API   Working Draft                 indexed key-value     many              N/A              IE 10+, Firefox 4+,
                                                     pairs, duplicate                                         Chrome 11+
                                                     values for a key,
                                                     efficient searching
                                                     over keys
Web SQL Database       Working Group Note            SQL queries           many              5 MB (can be     “deprecated” Chrome
                                                     (variant)                               increased)       4+, Safari 3.1/4.0+,
                                                                                                              Opera 10.5+



                                                                            30
References

•  Local Storage – Dive into HTML5:
   http://diveintohtml5.info/storage.html
•  Lawson, B. and Sharp, R. ”Introducing HTML5”. New
   Riders, 2011.
•  Mickens, J. ”Silo: Exploiting JavaScript and DOM
   Storage for Faster Page Loads”. In WebApps/USENIX,
   2010.
•  Benson, E. et al. ”Sync Kit: A Persistent Client-Side
   Database Caching Toolkit for Data Intensive Websites”.
   In WWW, 2010.
•  Cannon, B. and Wohlstadter, E. ”Automated Object
   Persistence for JavaScript”. In WWW, 2010.
                                 31
Thank You!




             Questions? Comments?
              markku.laine@aalto.fi




                           32

More Related Content

What's hot (20)

PDF
Introdução React.js
Henrique Gogó
 
PPT
Understanding REST
Nitin Pande
 
PPTX
NGINX: High Performance Load Balancing
NGINX, Inc.
 
PPTX
Minio Cloud Storage
Minio
 
PPT
IIS
Giritharan V
 
PPTX
Web Server - Internet Applications
sandra sukarieh
 
PDF
JavaScript - Chapter 3 - Introduction
WebStackAcademy
 
PPTX
Sequelize
Tarek Raihan
 
PPT
iOS Application Penetration Testing for Beginners
RyanISI
 
PDF
Hacking Adobe Experience Manager sites
Mikhail Egorov
 
PDF
Learn REST in 18 Slides
Suraj Gupta
 
PPT
Node js
umesh patil
 
PPTX
PHP Presentation
JIGAR MAKHIJA
 
PPTX
Nginx
Geeta Vinnakota
 
PDF
Introduction to Firebase with Android and Beyond...
Kasper Loevborg Jensen
 
PPT
SQLITE Android
Sourabh Sahu
 
PDF
C# ASP.NET WEB API APPLICATION DEVELOPMENT
Dr. Awase Khirni Syed
 
PPTX
Asp.net membership anduserroles_ppt
Shivanand Arur
 
PDF
What's Coming In CloudStack 4.18
ShapeBlue
 
PDF
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
 
Introdução React.js
Henrique Gogó
 
Understanding REST
Nitin Pande
 
NGINX: High Performance Load Balancing
NGINX, Inc.
 
Minio Cloud Storage
Minio
 
Web Server - Internet Applications
sandra sukarieh
 
JavaScript - Chapter 3 - Introduction
WebStackAcademy
 
Sequelize
Tarek Raihan
 
iOS Application Penetration Testing for Beginners
RyanISI
 
Hacking Adobe Experience Manager sites
Mikhail Egorov
 
Learn REST in 18 Slides
Suraj Gupta
 
Node js
umesh patil
 
PHP Presentation
JIGAR MAKHIJA
 
Introduction to Firebase with Android and Beyond...
Kasper Loevborg Jensen
 
SQLITE Android
Sourabh Sahu
 
C# ASP.NET WEB API APPLICATION DEVELOPMENT
Dr. Awase Khirni Syed
 
Asp.net membership anduserroles_ppt
Shivanand Arur
 
What's Coming In CloudStack 4.18
ShapeBlue
 
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
 

Similar to Local Storage for Web Applications (20)

PPT
Top 10 HTML5 Features for Oracle Cloud Developers
Brian Huff
 
PPTX
In-browser storage and me
Jason Casden
 
PPTX
Prueba ppt
Ulises Torelli
 
PPTX
Html5v1
Ulises Torelli
 
PPTX
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Richard Esplin
 
PDF
Html5 Application Security
chuckbt
 
PPT
Krug Fat Client
Paul Klipp
 
PDF
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo
 
PDF
your browser, your storage
Francesco Fullone
 
PDF
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
Rob Tweed
 
PDF
your browser, my storage
Francesco Fullone
 
PDF
Internet Explorer 8
David Chou
 
PDF
Your browser, your storage (extended version)
Francesco Fullone
 
PDF
Web Tools for GemStone/S
ESUG
 
PPTX
IE10 PP4 update for W3C HTML5 KIG
Reagan Hwang
 
PDF
Drupal is not your Website
Phase2
 
PDF
HDFCloud Workshop: HDF5 in the Cloud
The HDF-EOS Tools and Information Center
 
PPTX
Expertezed 2012 Webcast - XML DB Use Cases
Marco Gralike
 
Top 10 HTML5 Features for Oracle Cloud Developers
Brian Huff
 
In-browser storage and me
Jason Casden
 
Prueba ppt
Ulises Torelli
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Richard Esplin
 
Html5 Application Security
chuckbt
 
Krug Fat Client
Paul Klipp
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo
 
your browser, your storage
Francesco Fullone
 
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
Rob Tweed
 
your browser, my storage
Francesco Fullone
 
Internet Explorer 8
David Chou
 
Your browser, your storage (extended version)
Francesco Fullone
 
Web Tools for GemStone/S
ESUG
 
IE10 PP4 update for W3C HTML5 KIG
Reagan Hwang
 
Drupal is not your Website
Phase2
 
HDFCloud Workshop: HDF5 in the Cloud
The HDF-EOS Tools and Information Center
 
Expertezed 2012 Webcast - XML DB Use Cases
Marco Gralike
 
Ad

More from Markku Laine (10)

PDF
Responsive and Personalized Web Layouts with Integer Programming
Markku Laine
 
PDF
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Markku Laine
 
PDF
Monitoring the Spreading of Infectious Diseases in Finland
Markku Laine
 
PDF
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
Markku Laine
 
PDF
XIDE: Expanding End-User Web Development
Markku Laine
 
PDF
Connecting XForms to Databases: An Extension to the XForms Markup Language
Markku Laine
 
PDF
Editable Documents on the Web
Markku Laine
 
PDF
Performance Evaluation of XMPP on the Web
Markku Laine
 
PDF
Web Services for the Internet of Things
Markku Laine
 
PDF
Extending XForms with Server-Side Functionality
Markku Laine
 
Responsive and Personalized Web Layouts with Integer Programming
Markku Laine
 
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Markku Laine
 
Monitoring the Spreading of Infectious Diseases in Finland
Markku Laine
 
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
Markku Laine
 
XIDE: Expanding End-User Web Development
Markku Laine
 
Connecting XForms to Databases: An Extension to the XForms Markup Language
Markku Laine
 
Editable Documents on the Web
Markku Laine
 
Performance Evaluation of XMPP on the Web
Markku Laine
 
Web Services for the Internet of Things
Markku Laine
 
Extending XForms with Server-Side Functionality
Markku Laine
 
Ad

Recently uploaded (20)

PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PPTX
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PPTX
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
AVL ( audio, visuals or led ), technology.
Rajeshwri Panchal
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
AI Code Generation Risks (Ramkumar Dilli, CIO, Myridius)
Priyanka Aash
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 

Local Storage for Web Applications

  • 1. Local Storage for Web Applications T-111.5502 Seminar on Media Technology B P (4-8 cr) Presentation Markku Laine, M.Sc. (Tech.) [email protected] November 22, 2011
  • 2. Presentation Outline •  Introduction •  Evolution •  Revolution: The HTML5 Approach –  Web Storage –  Indexed Database API –  Web SQL Database –  HTML5 Offline •  Research topics •  Conclusion 2
  • 6. Benefits of Local Storage •  Reduces server load •  Less data to be transferred •  Faster websites •  Enables offline support •  Improves user experience 6
  • 8. Cookie •  Conventional approach •  Simple key-value pairs •  Information via HTTP headers –  Extra overhead •  Typically used for session management •  Storage size limited to 4 kB –  Way too small for modern Web applications •  Problems when running the same application in multiple windows •  Supported by major browsers 8
  • 9. Local Shared Object (Flash Cookie) •  Proprietary browser plug-in (Adobe Flash 6+, 2002) •  Storage size limited to 100 kB per domain (can be increased) •  ExternalInterface (Adobe Flash 8+, 2006) –  Easy and fast access to LSOs from JavaScript 9
  • 10. (Google) Gears: R.I.P. 2007-2011 •  Open-source browser plug-in, http://gears.google.com/ •  Several major APIs: e.g., Database (SQLite), WorkerPool, LocalServer, Desktop, and Geolocation •  Storage size unlimited per domain •  Focus from Gears to HTML5 and associated APIs: Indexed Database API, Web Workers, Geolocation API •  Does not support newer browser versions 10
  • 12. Motivations •  Standardized APIs •  Native support by major browsers (no plug-ins) •  Increase storage limitations •  Persistent storage 12
  • 13. Web Storage Working Draft October 25, 2011 http://www.w3.org/TR/webstorage/ 13
  • 14. Overview •  Beloved child has many names: HTML5 Storage, Local Storage, DOM Storage •  Improved cookies –  Simple key-value pairs –  Stores data in a Web browser, persistently •  localStorage (Persisted Cookies) and sessionStorage (Session Cookies) accessible via global window object •  Enables running the same application in multiple windows •  Storage size limited to 5-10 MB per domain (default) 14
  • 15. Examples and Demo // Store persistent data localStorage.setItem( ”key”, ”value” ) // Retrieve persistent data localStorage.getItem( ”key” ) // Retrieve the name of the key localStorage.key( number ) // Retrieve the number of key-value pairs localStorage.length // Remove persistent data localStorage.removeItem( ”key” ) http://html5demos.com/storage 15
  • 16. Browser Support Source: http://caniuse.com/#search=web%20storage 16
  • 17. Indexed Database API Working Draft April 19, 2011 http://www.w3.org/TR/IndexedDB/ 17
  • 18. Overview •  Beloved child has many names: IndexedDB, WebSimpleDB API •  Newest of the three specifications •  Simple values and hierarchical objects •  An advanced version of Web Storage, support for –  Robust indexes –  efficient searching over keys –  duplicate keys (multiple values for a key) •  Allows for advanced data scenarios on the client •  Asynchronous database requests 18
  • 19. (Sync) Examples // Open a database var db = window.indexedDBSync.open( ”todos” ); // Open an object store var objectStore = db.openObjectStore( ”todo”, 0 ); // read-write // Add data to an object store objectStore.add( { ”text”: ”todo text”, ”timeStamp”: new Date().getTime() } ); 19
  • 20. Browser Support http://caniuse.com/#search=indexedDB 20
  • 21. Web SQL Database Working Group Note November 18, 2010 http://www.w3.org/TR/webdatabase/ 21
  • 22. Overview •  Beloved child has many names: WebDB •  As of November 18, 2010 a deprecated specification –  Not enough independent implementations –  All use SQLite as the database engine •  Manipulate client-side databases using SQL –  A variant of SQL •  Asynchronous database requests •  The most advanced client storage specification 22
  • 23. Example and Demo // Insert new tweet t.executeSql( ”INSERT INTO tweets (id, screen_name, date, text) VALUES (?, ?, ?, ?), [tweet.id, tweet.from_user, tweet / 1000, tweet.text]” ); http://html5demos.com/database 23
  • 24. Browser Support http://caniuse.com/#search=web%20sql%20database 24
  • 25. HTML5 Offline Working Draft May 25, 2011 http://www.w3.org/TR/html5/offline.html 25
  • 27. Silo •  A system that reduces both the number of HTTP requests and the bandwidth required to construct a page •  Uses JavaScript and Web Storage à no plug-ins needed •  The idea is to store JavaScript and CSS fragments in a local storage. When a web page is requested, only the server asks which fragments are missing and sends them to the client in one file 27
  • 28. Sync Kit •  Client-server toolkit •  Uses JavaScript and (Google) Gears •  Offloads some data storage and processing from a web server onto the web browsers •  Synchronizes relational database tables between the browser and the web server •  Persists both data and templates across web sessions •  Increases server load handling capability from 3 to 4 times 28
  • 30. Comparison of Local Storage Options Name Standard Features Data type Storage space Browser support Cookie IETF RFC 2109, IETF RFC simple key-value string 4 kB all major 2965 pairs, information (serialization) via HTTP headers Local Shared Object proprietary browser plug-in alternative to Flash data 100 kB per all major via Adobe (Flash cookie) (Adobe) cookies, types domain (can be Flash Player 6+ plug-in accessible from increased) JavaScript (Google) Gears open source browser plug- relational many unlimited per deprecated (old in (BSD License) database (SQLite) domain (SQLite versions via Gears limitations) plug-in) Web Storage Working Draft simple key-value string 5-10 MB (can IE 8+, Firefox 2.0/3.5+, pairs, no duplicate (serialization) be increased) Chrome 4/5+, Safari values for a key 4+, Opera 10.5+ Indexed Database API Working Draft indexed key-value many N/A IE 10+, Firefox 4+, pairs, duplicate Chrome 11+ values for a key, efficient searching over keys Web SQL Database Working Group Note SQL queries many 5 MB (can be “deprecated” Chrome (variant) increased) 4+, Safari 3.1/4.0+, Opera 10.5+ 30
  • 31. References •  Local Storage – Dive into HTML5: http://diveintohtml5.info/storage.html •  Lawson, B. and Sharp, R. ”Introducing HTML5”. New Riders, 2011. •  Mickens, J. ”Silo: Exploiting JavaScript and DOM Storage for Faster Page Loads”. In WebApps/USENIX, 2010. •  Benson, E. et al. ”Sync Kit: A Persistent Client-Side Database Caching Toolkit for Data Intensive Websites”. In WWW, 2010. •  Cannon, B. and Wohlstadter, E. ”Automated Object Persistence for JavaScript”. In WWW, 2010. 31
  • 32. Thank You! Questions? Comments? [email protected] 32