SlideShare a Scribd company logo
1 of 31
HTML 5 API: Documentation http://www.whatwg.org/specs/web-apps/current-work/multipage/ http://dev.w3.org/html5/
localStorage,sessionStorageAND YOU! DOM Storage:
DOM Storage: Why? Minimize HTTP Requests by not submitting unnecessary requests or statefullness Store data in browser across tabs, windows, and sessions Maintain functionality with unreliable connection by queuing data on reconnect  Great for mobile web apps Save user preferences Save session statefulness
DOM Storage: Browser Support Firefox 3.5, Safari 4, IE8, Chrome 4+, Opera 10.5: HTML5 localStorage; these modern browsers all support the core localStorage functionality defined in the HTML5 draft.
DOM Storage: Browser Support(cont’d) Firefox 2.x and 3.0: Gecko globalStorage, a very early implementation similar to HTML5’s localStorage. Safari 3.1 & 3.2: HTML5 Database Storage, because Safari 3.1 and 3.2 don’t support HTML5 localStorage.
DOM Storage: Browser Support(cont’d) IE6, IE7: userData persistence, a rarely used IE feature for associating string data with an element on a web page and persisting it between pageviews. Google Chrome Pre 4: Gears Database API, pre-installed into into earlier versions of Chrome
Storage Objects “Each domain and subdomain has its own separate local storage area. Domains can access the storage areas of subdomains, and subdomains can access the storage areas of parent domains.” - http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx Important  For this origin check, HTTP and HTTPS are considered the same protocol.
Storage Objects (cont’d) Domains: localStorage['example.com'] is accessible to example.com localStorage[‘example.com’] is accessible to www.example.com Subdomains: localStorage['www.example.com'] is accessible to example.com localStorage['www.example.com'] is NOT accessible to mail.example.com
Storage Objects (cont’d) Properties stored as Strings Numbers, Booleans, and Objects must be converted If property name DNE, a key/value pair is automatically created to hold it It appears that all browsers delete local storage objects by deleting cookies IE is limited to only 5MB for localStorage and 5MB for sessionStorage "The current default on iPhone is 5.0 MB. If your database grows beyond this limit, the user will automatically be asked to allow or deny the size increase. If he allows the increase, the database size limit will be upped to 10.MB“- http://building-iphone-apps.labs.oreilly.com/ch05.html#ch05%5Fid35933104
localStorage “The local storage mechanism spans multiple windows and persists beyond the current session. ThelocalStorage attribute provides persistent storage areas for domains. It allows Web applications to store nearly 10 MB of user data, such as entire documents or a user's mailbox, on the client for performance reasons.” - http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx
sessionStorage “Session storage is designed for scenarios where the user is carrying out a single transaction. ThesessionStorage attribute of the window object maintains key/value pairs for all pages loaded during the lifetime of a single tab (for the duration of the top-level browsing context). For example, a page might have a check box that the user selects to indicate that he wants insurance.” - http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx
DOM Storage: API Storage Object localStorage and sessionStorage are both instances of the Storage object Methods clear getItem removeItem setItem Key Properties constructor length remainingSpace(IE Only)
DOM Storage: API Methods getItem: Retrieves the current value associated with the key. value = window.localStorage.getItem(key); setItem: Sets a key/value pair. window.localStorage.setItem(key, value); removeItem: Deletes a key/value pair from the DOM Storage collection. window.localStorage.removeItem(key); clear : Removes all key/value pairs from the DOM Storage area.   window.localStorage.clear(); key: Retrieves the key at the specified index in the collection. keyValue = window.localStorage.key(n);
DOM Storage: API Properties constructor: Returns a reference to the constructor In FF, localStorage.constructor!== Storage ?? length: Retrieves the length of the key/value list. remainingSpace (IE Only): Retrieves the remaining memory space, in bytes, for the storage object.
DOM Storage: API Properties (cont’d) Getter/setters: key values can be used as properties of localStorage in place of getItem or setItem localStorage.x = ‘hey’ // localStorage.getItem(‘x’) === ‘hey’ localStorage.setItem(‘x’,’you’); // localStorage.x === ‘you’
Examples http://sammystodos.brandonaaron.net/#/list/0 sadf
Client-side SQL:  Currently only in Webkit& WebOS Chrome 3+ (3,4 via Gears), Safari 3.1+, iPhone, Palm, Android http://dev.w3.org/html5/webdatabase/ “The client-side SQL database in HTML 5 enables structured data storage.”
SQL API: Database Object Methods openDatabase transaction readTransaction changeVersion: Change the DB’s version. Properties version:  The DB’s current version.
SQL API: openDatabase window.openDatabase( DatabaseName, DatabaseVersion, DisplayName, EstimatedSize) DatabaseName: non-empty String DatabaseVersion: If not the most recent version, openDatabase will fail. DisplayName: any valid String (can be empty) EstimatedSize: an estimated size in bytes vardb = openDatabase(“DallasJS", “1.0", “DallasJS’ sweet DB", 1024*1024);
SQL API:transaction & readTransaction db.transaction(transactionCallback, errorCallback) db.transaction(function(tx) {	// EXECUTE SQL CODE VIA tx HERE}, function(e) {	alert(tx,e);}); The SQLTransactionObject has only method: executeSql
SQL API: executeSql transaction.executeSQL( SQLStatement, SQLParameters, ResultsetCallback, ErrorCallback); SQLStatement: A valid SQLite statement SQLParameters: Array of values “Replace each ? placeholder with the value of the argument in the arguments array with the same position.“ ResultsetCallback: Method to handle the returned results ErrorCallback: Method to handle a failed execution
SQL API: executeSql (cont’d) db.transaction(function(tx) { tx.executeSql("SELECT * FROM MyTb WHERE id = ?”,[1],function(tx,SQLResultSet) {	console.log(result.rows.item(0)['id']);}); });
SQL API: SQLResultSet Properties insertId: The id of the of the inserted row. rowsAffected: Number of rows affected by the statement. rows: The resulting data list.
SQL: Examples http://webkit.org/demos/sticky-notes/index.html db.transaction(function(tx) {tx.executeSql("CREATE TABLE t1 (t1key INTEGER PRIMARY KEY,dataTEXT,numdouble,timeEnter DATE); INSERT INTO 't1' VALUES(1, 'This is sample data', 3, NULL); INSERT INTO 't1' VALUES(2, 'More sample data', 6, NULL); INSERT INTO 't1' VALUES(3, 'And a little more', 9, NULL);");});
Cache Manifest “The mechanism for ensuring Web applications are available even when the user is not connected to their network is the manifest attribute on the html element.” Build WebApp in the form of HTML, CSS, JS, IMG files, etc… You don’t need to include the current HTML file Add link to manifest in html<html manifest=“example.manifest”> Make manifest file with MIME type “text/cache-manifest” with paths to resources to be cached:
Cache Manifest: Example CACHE MANIFEST # versionNumber CACHE example.html example.css example.js example.png FALLBACK: * /sorry-i-am-offline.html #give 404 page for all non-cached items when offline NETWORK: /important.html # never cache
Cache Manifest: Events checking: Fired whenever a manifest is present, regardless if page has been visited. downloading: If this cache manifest has never been seen before. progress: Fired during downloading phase giving updates regarding progress. cached: Fired on completion. WebApp is now fully cached noupdate: Fired if cache manifest has been seen, but is not new. downloading & progress: See above. updateready: New manifest has been cached, but your current app is not utilizing it yet. error: 404, 410, Failed to download manifest or a resource obsolete: The manifest was found to have become a 404 or 410 page, so the application cache is being deleted.
Cache Manifest:applicationCache Object The application cache automatically updates only if the manifest file changes. It does not automatically update if resources listed in the manifest file change  applicationCache.status: 0-5, corresponds with the following: UNCACHED // === 0 IDLE // === 1 CHECKING // === 2 DOWNLOADING // === 3 UPDATEREADY // === 4 OBSOLETE // === 5 applicationCache.update() applicationCache.swapCache()
Cache Manifest: iPhone EX http://www.technetra.com/2009/08/17/countdown-html5-cache-version/
Are we Offline? “The navigator.onLine attribute must return false if the user agent will not contact the network when the user follows links or when a script requests a remote page (or knows that such an attempt would fail)...”- http://www.whatwg.org/specs/web-apps/current-work/#offline navigator.onLine === true window.addEventListener('online',function(){console.log(‘We’re online!');},true); window.addEventListener(‘offline',function(){console.log(‘We’ve lost power!');},true);
Additional Citations http://html5demos.com/drag http://www.w3.org/TR/webstorage/ http://dev.w3.org/html5/ https://developer.mozilla.org/en/dom/storage http://www.sqlite.org/docs.html http://www.w3.org/TR/2008/WD-html5-20080610/structured.html

More Related Content

What's hot (20)

Android Data Persistence
Android Data PersistenceAndroid Data Persistence
Android Data Persistence
 
Angular Directives
Angular DirectivesAngular Directives
Angular Directives
 
JavaScript - Chapter 8 - Objects
 JavaScript - Chapter 8 - Objects JavaScript - Chapter 8 - Objects
JavaScript - Chapter 8 - Objects
 
jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
 
JavaScript - Chapter 11 - Events
 JavaScript - Chapter 11 - Events  JavaScript - Chapter 11 - Events
JavaScript - Chapter 11 - Events
 
Event In JavaScript
Event In JavaScriptEvent In JavaScript
Event In JavaScript
 
Local Storage for Web Applications
Local Storage for Web ApplicationsLocal Storage for Web Applications
Local Storage for Web Applications
 
Jquery
JqueryJquery
Jquery
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
HTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts BasicsHTML, CSS and Java Scripts Basics
HTML, CSS and Java Scripts Basics
 
Javascript
JavascriptJavascript
Javascript
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Xslt
XsltXslt
Xslt
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
(Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS (Fast) Introduction to HTML & CSS
(Fast) Introduction to HTML & CSS
 
Ajax presentation
Ajax presentationAjax presentation
Ajax presentation
 
Js: master prototypes
Js: master prototypesJs: master prototypes
Js: master prototypes
 
jQuery
jQueryjQuery
jQuery
 

Viewers also liked

Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...
Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...
Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...CambridgeIP Ltd
 
Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...
Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...
Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...Mohammad Subhan
 
TodiCastle: villa rentals & historic hotel in Umbria
TodiCastle: villa rentals & historic hotel in UmbriaTodiCastle: villa rentals & historic hotel in Umbria
TodiCastle: villa rentals & historic hotel in UmbriaMario Santoro
 
The Original Adjustable Door Hinge
The Original Adjustable Door HingeThe Original Adjustable Door Hinge
The Original Adjustable Door HingeBill Bragman
 
Baccetti tx timing_for_twin_block_therapy
Baccetti tx timing_for_twin_block_therapyBaccetti tx timing_for_twin_block_therapy
Baccetti tx timing_for_twin_block_therapyConsultório Particular
 
Blowin In The Wind
Blowin In The  WindBlowin In The  Wind
Blowin In The Windgoznevi
 
Final review presentation
Final review presentationFinal review presentation
Final review presentationArvind Krishnaa
 
Parasta mitä digillä saa nyt
Parasta mitä digillä saa nytParasta mitä digillä saa nyt
Parasta mitä digillä saa nytDarwin Oy
 
Resume M Pitcher 2010 08 27
Resume   M Pitcher 2010 08 27Resume   M Pitcher 2010 08 27
Resume M Pitcher 2010 08 27Michael Pitcher
 
Third review presentation
Third review presentationThird review presentation
Third review presentationArvind Krishnaa
 
Accelerating innovation and diffusion of renewable energy technologies: techn...
Accelerating innovation and diffusion of renewable energy technologies: techn...Accelerating innovation and diffusion of renewable energy technologies: techn...
Accelerating innovation and diffusion of renewable energy technologies: techn...CambridgeIP Ltd
 
Sosiaalisen median case-kimara
Sosiaalisen median case-kimaraSosiaalisen median case-kimara
Sosiaalisen median case-kimaraDarwin Oy
 
WORDPRESS
WORDPRESSWORDPRESS
WORDPRESSboxlog
 

Viewers also liked (20)

Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...
Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...
Technology Transfer in the Renewable Energy Space: Key Challenges and Opportu...
 
Picture Essay
Picture EssayPicture Essay
Picture Essay
 
Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...
Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...
Bahan asdep standarisasi jabatan sosialisasi permenpan 13 2014 surabaya 26 ju...
 
Kap3 balansering av likninger
Kap3 balansering av likningerKap3 balansering av likninger
Kap3 balansering av likninger
 
Ch25
Ch25Ch25
Ch25
 
Peta persoalan
Peta persoalanPeta persoalan
Peta persoalan
 
TodiCastle: villa rentals & historic hotel in Umbria
TodiCastle: villa rentals & historic hotel in UmbriaTodiCastle: villa rentals & historic hotel in Umbria
TodiCastle: villa rentals & historic hotel in Umbria
 
History of films
History of filmsHistory of films
History of films
 
The Original Adjustable Door Hinge
The Original Adjustable Door HingeThe Original Adjustable Door Hinge
The Original Adjustable Door Hinge
 
Baccetti tx timing_for_twin_block_therapy
Baccetti tx timing_for_twin_block_therapyBaccetti tx timing_for_twin_block_therapy
Baccetti tx timing_for_twin_block_therapy
 
On Becoming A Marketing Tour de Force
On Becoming A Marketing Tour de Force On Becoming A Marketing Tour de Force
On Becoming A Marketing Tour de Force
 
Blowin In The Wind
Blowin In The  WindBlowin In The  Wind
Blowin In The Wind
 
Final review presentation
Final review presentationFinal review presentation
Final review presentation
 
Parasta mitä digillä saa nyt
Parasta mitä digillä saa nytParasta mitä digillä saa nyt
Parasta mitä digillä saa nyt
 
Unit 0
Unit 0Unit 0
Unit 0
 
Resume M Pitcher 2010 08 27
Resume   M Pitcher 2010 08 27Resume   M Pitcher 2010 08 27
Resume M Pitcher 2010 08 27
 
Third review presentation
Third review presentationThird review presentation
Third review presentation
 
Accelerating innovation and diffusion of renewable energy technologies: techn...
Accelerating innovation and diffusion of renewable energy technologies: techn...Accelerating innovation and diffusion of renewable energy technologies: techn...
Accelerating innovation and diffusion of renewable energy technologies: techn...
 
Sosiaalisen median case-kimara
Sosiaalisen median case-kimaraSosiaalisen median case-kimara
Sosiaalisen median case-kimara
 
WORDPRESS
WORDPRESSWORDPRESS
WORDPRESS
 

Similar to Local storage

Persistent Offline Storage White
Persistent Offline Storage WhitePersistent Offline Storage White
Persistent Offline Storage WhiteAlexei White
 
Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Web Directions
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat ClientPaul Klipp
 
Html5 cache mechanism & local storage
Html5 cache mechanism & local storageHtml5 cache mechanism & local storage
Html5 cache mechanism & local storageSendhil Kumar Kannan
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and moreYan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and morefaming su
 
Browser security
Browser securityBrowser security
Browser securityUday Anand
 
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
 
Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications OfflineMatt Casto
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Sho Ito
 
HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs SilverlightMatt Casto
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Stephan Hochdörfer
 
High Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesHigh Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesStoyan Stefanov
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 
Building great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to knowBuilding great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to knowshwetank
 

Similar to Local storage (20)

Persistent Offline Storage White
Persistent Offline Storage WhitePersistent Offline Storage White
Persistent Offline Storage White
 
Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5Dave Orchard - Offline Web Apps with HTML5
Dave Orchard - Offline Web Apps with HTML5
 
your browser, my storage
your browser, my storageyour browser, my storage
your browser, my storage
 
Krug Fat Client
Krug Fat ClientKrug Fat Client
Krug Fat Client
 
Html5
Html5Html5
Html5
 
your browser, your storage
your browser, your storageyour browser, your storage
your browser, your storage
 
Html5 cache mechanism & local storage
Html5 cache mechanism & local storageHtml5 cache mechanism & local storage
Html5 cache mechanism & local storage
 
Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
 
Web app and more
Web app and moreWeb app and more
Web app and more
 
Browser security
Browser securityBrowser security
Browser security
 
Your browser, your storage (extended version)
Your browser, your storage (extended version)Your browser, your storage (extended version)
Your browser, your storage (extended version)
 
Html5 & less css
Html5 & less cssHtml5 & less css
Html5 & less css
 
Taking Web Applications Offline
Taking Web Applications OfflineTaking Web Applications Offline
Taking Web Applications Offline
 
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
 
HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight
 
Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12Offline strategies for HTML5 web applications - IPC12
Offline strategies for HTML5 web applications - IPC12
 
High Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practicesHigh Performance Web Pages - 20 new best practices
High Performance Web Pages - 20 new best practices
 
Browser Security
Browser SecurityBrowser Security
Browser Security
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Building great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to knowBuilding great mobile apps: Somethings you might want to know
Building great mobile apps: Somethings you might want to know
 

Recently uploaded

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

Local storage

  • 1. HTML 5 API: Documentation http://www.whatwg.org/specs/web-apps/current-work/multipage/ http://dev.w3.org/html5/
  • 3. DOM Storage: Why? Minimize HTTP Requests by not submitting unnecessary requests or statefullness Store data in browser across tabs, windows, and sessions Maintain functionality with unreliable connection by queuing data on reconnect Great for mobile web apps Save user preferences Save session statefulness
  • 4. DOM Storage: Browser Support Firefox 3.5, Safari 4, IE8, Chrome 4+, Opera 10.5: HTML5 localStorage; these modern browsers all support the core localStorage functionality defined in the HTML5 draft.
  • 5. DOM Storage: Browser Support(cont’d) Firefox 2.x and 3.0: Gecko globalStorage, a very early implementation similar to HTML5’s localStorage. Safari 3.1 & 3.2: HTML5 Database Storage, because Safari 3.1 and 3.2 don’t support HTML5 localStorage.
  • 6. DOM Storage: Browser Support(cont’d) IE6, IE7: userData persistence, a rarely used IE feature for associating string data with an element on a web page and persisting it between pageviews. Google Chrome Pre 4: Gears Database API, pre-installed into into earlier versions of Chrome
  • 7. Storage Objects “Each domain and subdomain has its own separate local storage area. Domains can access the storage areas of subdomains, and subdomains can access the storage areas of parent domains.” - http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx Important  For this origin check, HTTP and HTTPS are considered the same protocol.
  • 8. Storage Objects (cont’d) Domains: localStorage['example.com'] is accessible to example.com localStorage[‘example.com’] is accessible to www.example.com Subdomains: localStorage['www.example.com'] is accessible to example.com localStorage['www.example.com'] is NOT accessible to mail.example.com
  • 9. Storage Objects (cont’d) Properties stored as Strings Numbers, Booleans, and Objects must be converted If property name DNE, a key/value pair is automatically created to hold it It appears that all browsers delete local storage objects by deleting cookies IE is limited to only 5MB for localStorage and 5MB for sessionStorage "The current default on iPhone is 5.0 MB. If your database grows beyond this limit, the user will automatically be asked to allow or deny the size increase. If he allows the increase, the database size limit will be upped to 10.MB“- http://building-iphone-apps.labs.oreilly.com/ch05.html#ch05%5Fid35933104
  • 10. localStorage “The local storage mechanism spans multiple windows and persists beyond the current session. ThelocalStorage attribute provides persistent storage areas for domains. It allows Web applications to store nearly 10 MB of user data, such as entire documents or a user's mailbox, on the client for performance reasons.” - http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx
  • 11. sessionStorage “Session storage is designed for scenarios where the user is carrying out a single transaction. ThesessionStorage attribute of the window object maintains key/value pairs for all pages loaded during the lifetime of a single tab (for the duration of the top-level browsing context). For example, a page might have a check box that the user selects to indicate that he wants insurance.” - http://msdn.microsoft.com/en-us/library/cc197062(VS.85).aspx
  • 12. DOM Storage: API Storage Object localStorage and sessionStorage are both instances of the Storage object Methods clear getItem removeItem setItem Key Properties constructor length remainingSpace(IE Only)
  • 13. DOM Storage: API Methods getItem: Retrieves the current value associated with the key. value = window.localStorage.getItem(key); setItem: Sets a key/value pair. window.localStorage.setItem(key, value); removeItem: Deletes a key/value pair from the DOM Storage collection. window.localStorage.removeItem(key); clear : Removes all key/value pairs from the DOM Storage area.   window.localStorage.clear(); key: Retrieves the key at the specified index in the collection. keyValue = window.localStorage.key(n);
  • 14. DOM Storage: API Properties constructor: Returns a reference to the constructor In FF, localStorage.constructor!== Storage ?? length: Retrieves the length of the key/value list. remainingSpace (IE Only): Retrieves the remaining memory space, in bytes, for the storage object.
  • 15. DOM Storage: API Properties (cont’d) Getter/setters: key values can be used as properties of localStorage in place of getItem or setItem localStorage.x = ‘hey’ // localStorage.getItem(‘x’) === ‘hey’ localStorage.setItem(‘x’,’you’); // localStorage.x === ‘you’
  • 17. Client-side SQL: Currently only in Webkit& WebOS Chrome 3+ (3,4 via Gears), Safari 3.1+, iPhone, Palm, Android http://dev.w3.org/html5/webdatabase/ “The client-side SQL database in HTML 5 enables structured data storage.”
  • 18. SQL API: Database Object Methods openDatabase transaction readTransaction changeVersion: Change the DB’s version. Properties version: The DB’s current version.
  • 19. SQL API: openDatabase window.openDatabase( DatabaseName, DatabaseVersion, DisplayName, EstimatedSize) DatabaseName: non-empty String DatabaseVersion: If not the most recent version, openDatabase will fail. DisplayName: any valid String (can be empty) EstimatedSize: an estimated size in bytes vardb = openDatabase(“DallasJS", “1.0", “DallasJS’ sweet DB", 1024*1024);
  • 20. SQL API:transaction & readTransaction db.transaction(transactionCallback, errorCallback) db.transaction(function(tx) { // EXECUTE SQL CODE VIA tx HERE}, function(e) { alert(tx,e);}); The SQLTransactionObject has only method: executeSql
  • 21. SQL API: executeSql transaction.executeSQL( SQLStatement, SQLParameters, ResultsetCallback, ErrorCallback); SQLStatement: A valid SQLite statement SQLParameters: Array of values “Replace each ? placeholder with the value of the argument in the arguments array with the same position.“ ResultsetCallback: Method to handle the returned results ErrorCallback: Method to handle a failed execution
  • 22. SQL API: executeSql (cont’d) db.transaction(function(tx) { tx.executeSql("SELECT * FROM MyTb WHERE id = ?”,[1],function(tx,SQLResultSet) { console.log(result.rows.item(0)['id']);}); });
  • 23. SQL API: SQLResultSet Properties insertId: The id of the of the inserted row. rowsAffected: Number of rows affected by the statement. rows: The resulting data list.
  • 24. SQL: Examples http://webkit.org/demos/sticky-notes/index.html db.transaction(function(tx) {tx.executeSql("CREATE TABLE t1 (t1key INTEGER PRIMARY KEY,dataTEXT,numdouble,timeEnter DATE); INSERT INTO 't1' VALUES(1, 'This is sample data', 3, NULL); INSERT INTO 't1' VALUES(2, 'More sample data', 6, NULL); INSERT INTO 't1' VALUES(3, 'And a little more', 9, NULL);");});
  • 25. Cache Manifest “The mechanism for ensuring Web applications are available even when the user is not connected to their network is the manifest attribute on the html element.” Build WebApp in the form of HTML, CSS, JS, IMG files, etc… You don’t need to include the current HTML file Add link to manifest in html<html manifest=“example.manifest”> Make manifest file with MIME type “text/cache-manifest” with paths to resources to be cached:
  • 26. Cache Manifest: Example CACHE MANIFEST # versionNumber CACHE example.html example.css example.js example.png FALLBACK: * /sorry-i-am-offline.html #give 404 page for all non-cached items when offline NETWORK: /important.html # never cache
  • 27. Cache Manifest: Events checking: Fired whenever a manifest is present, regardless if page has been visited. downloading: If this cache manifest has never been seen before. progress: Fired during downloading phase giving updates regarding progress. cached: Fired on completion. WebApp is now fully cached noupdate: Fired if cache manifest has been seen, but is not new. downloading & progress: See above. updateready: New manifest has been cached, but your current app is not utilizing it yet. error: 404, 410, Failed to download manifest or a resource obsolete: The manifest was found to have become a 404 or 410 page, so the application cache is being deleted.
  • 28. Cache Manifest:applicationCache Object The application cache automatically updates only if the manifest file changes. It does not automatically update if resources listed in the manifest file change applicationCache.status: 0-5, corresponds with the following: UNCACHED // === 0 IDLE // === 1 CHECKING // === 2 DOWNLOADING // === 3 UPDATEREADY // === 4 OBSOLETE // === 5 applicationCache.update() applicationCache.swapCache()
  • 29. Cache Manifest: iPhone EX http://www.technetra.com/2009/08/17/countdown-html5-cache-version/
  • 30. Are we Offline? “The navigator.onLine attribute must return false if the user agent will not contact the network when the user follows links or when a script requests a remote page (or knows that such an attempt would fail)...”- http://www.whatwg.org/specs/web-apps/current-work/#offline navigator.onLine === true window.addEventListener('online',function(){console.log(‘We’re online!');},true); window.addEventListener(‘offline',function(){console.log(‘We’ve lost power!');},true);
  • 31. Additional Citations http://html5demos.com/drag http://www.w3.org/TR/webstorage/ http://dev.w3.org/html5/ https://developer.mozilla.org/en/dom/storage http://www.sqlite.org/docs.html http://www.w3.org/TR/2008/WD-html5-20080610/structured.html