SlideShare uma empresa Scribd logo
1 de 32
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

HTML5 Local Storage
HTML5 Local StorageHTML5 Local Storage
HTML5 Local Storage
 
Introduction to JavaScript Basics.
Introduction to JavaScript Basics.Introduction to JavaScript Basics.
Introduction to JavaScript Basics.
 
Introduction to HTML
Introduction to HTMLIntroduction to HTML
Introduction to HTML
 
Html basics
Html basicsHtml basics
Html basics
 
⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport⭐Generación de reportes en múltiples formatos con jasper report e ireport
⭐Generación de reportes en múltiples formatos con jasper report e ireport
 
History of JavaScript
History of JavaScriptHistory of JavaScript
History of JavaScript
 
Angular js PPT
Angular js PPTAngular js PPT
Angular js PPT
 
Web Cookies
Web CookiesWeb Cookies
Web Cookies
 
Cookies and sessions
Cookies and sessionsCookies and sessions
Cookies and sessions
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
 
Introduction to HTML and CSS
Introduction to HTML and CSSIntroduction to HTML and CSS
Introduction to HTML and CSS
 
Introduction to Web Programming - first course
Introduction to Web Programming - first courseIntroduction to Web Programming - first course
Introduction to Web Programming - first course
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
JavaScript Promises
JavaScript PromisesJavaScript Promises
JavaScript Promises
 
Bootstrap seminar presentation
Bootstrap seminar presentationBootstrap seminar presentation
Bootstrap seminar presentation
 
Introduction to Bootstrap
Introduction to BootstrapIntroduction to Bootstrap
Introduction to Bootstrap
 
Css notes
Css notesCss notes
Css notes
 
Website
WebsiteWebsite
Website
 
(Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS (Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS
 
JavaScript Fetch API
JavaScript Fetch APIJavaScript Fetch API
JavaScript Fetch API
 

Semelhante a Local Storage HTML5 Revolution

Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersBrian Huff
 
In-browser storage and me
In-browser storage and meIn-browser storage and me
In-browser storage and meJason Casden
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Richard Esplin
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Securitychuckbt
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat ClientPaul Klipp
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo
 
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...Rob Tweed
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8David Chou
 
Your browser, your storage (extended version)
Your browser, your storage (extended version)Your browser, your storage (extended version)
Your browser, your storage (extended version)Francesco Fullone
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/SESUG
 
IE10 PP4 update for W3C HTML5 KIG
IE10 PP4 update for W3C HTML5 KIGIE10 PP4 update for W3C HTML5 KIG
IE10 PP4 update for W3C HTML5 KIGReagan Hwang
 
Drupal is not your Website
Drupal is not your Website Drupal is not your Website
Drupal is not your Website Phase2
 
Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesMarco Gralike
 

Semelhante a Local Storage HTML5 Revolution (20)

Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 
In-browser storage and me
In-browser storage and meIn-browser storage and me
In-browser storage and me
 
Html 5
Html 5Html 5
Html 5
 
Prueba ppt
Prueba pptPrueba ppt
Prueba ppt
 
Html5v1
Html5v1Html5v1
Html5v1
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat Client
 
Denodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me AnythingDenodo Partner Connect: Technical Webinar - Ask Me Anything
Denodo Partner Connect: Technical Webinar - Ask Me Anything
 
your browser, your storage
your browser, your storageyour browser, your storage
your browser, your storage
 
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
 
your browser, my storage
your browser, my storageyour browser, my storage
your browser, my storage
 
HDF Cloud Services
HDF Cloud ServicesHDF Cloud Services
HDF Cloud Services
 
Internet Explorer 8
Internet Explorer 8Internet Explorer 8
Internet Explorer 8
 
Your browser, your storage (extended version)
Your browser, your storage (extended version)Your browser, your storage (extended version)
Your browser, your storage (extended version)
 
Web Tools for GemStone/S
Web Tools for GemStone/SWeb Tools for GemStone/S
Web Tools for GemStone/S
 
IE10 PP4 update for W3C HTML5 KIG
IE10 PP4 update for W3C HTML5 KIGIE10 PP4 update for W3C HTML5 KIG
IE10 PP4 update for W3C HTML5 KIG
 
Drupal is not your Website
Drupal is not your Website Drupal is not your Website
Drupal is not your Website
 
HDFCloud Workshop: HDF5 in the Cloud
HDFCloud Workshop: HDF5 in the CloudHDFCloud Workshop: HDF5 in the Cloud
HDFCloud Workshop: HDF5 in the Cloud
 
Expertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use CasesExpertezed 2012 Webcast - XML DB Use Cases
Expertezed 2012 Webcast - XML DB Use Cases
 

Mais de Markku Laine

Responsive and Personalized Web Layouts with Integer Programming
Responsive and Personalized Web Layouts with Integer ProgrammingResponsive and Personalized Web Layouts with Integer Programming
Responsive and Personalized Web Layouts with Integer ProgrammingMarkku Laine
 
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web LayoutsLayout as a Service (LaaS): A Service Platform for Self-Optimizing Web Layouts
Layout as a Service (LaaS): A Service Platform for Self-Optimizing Web LayoutsMarkku Laine
 
Monitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMonitoring the Spreading of Infectious Diseases in Finland
Monitoring the Spreading of Infectious Diseases in FinlandMarkku Laine
 
XFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentXFormsDB: An XForms-Based Framework for Simplifying Web Application Development
XFormsDB: An XForms-Based Framework for Simplifying Web Application DevelopmentMarkku Laine
 
XIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentXIDE: Expanding End-User Web Development
XIDE: Expanding End-User Web DevelopmentMarkku Laine
 
Connecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageConnecting XForms to Databases: An Extension to the XForms Markup Language
Connecting XForms to Databases: An Extension to the XForms Markup LanguageMarkku Laine
 
Editable Documents on the Web
Editable Documents on the WebEditable Documents on the Web
Editable Documents on the WebMarkku Laine
 
Performance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebPerformance Evaluation of XMPP on the Web
Performance Evaluation of XMPP on the WebMarkku Laine
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of ThingsMarkku Laine
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityMarkku Laine
 

Mais de Markku Laine (10)

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

Último

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Último (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

Local Storage HTML5 Revolution

  • 1. 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
  • 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? markku.laine@aalto.fi 32