SlideShare a Scribd company logo
Taking WebApplications OfflineMatt Castohttp://google.com/profiles/mattcasto
Offline Web - Oxymoron“Why would you want to use the web offline?” Some dude in an airplaneMaking The CaseExample:  Survey application that needs to work both online and in areas with little or no internet connectivity.
Bandwidth Isn’t Ubiquitous
Traditional Caching

Recommended for you

Souders WPO Web2.0Expo
Souders WPO Web2.0ExpoSouders WPO Web2.0Expo
Souders WPO Web2.0Expo

This document summarizes Steve Souders' presentation on web performance optimization (WPO). It discusses how speed is the most important website feature and outlines techniques to improve performance like optimizing assets, reducing page weight, and leveraging caching. It also covers emerging trends like SPDY and improvements to third-party content. The key takeaways are that WPO matters significantly, new standards are coming, and guarding against slow third-party code.

do u webview?
do u webview?do u webview?
do u webview?

Every URL visited from the Facebook iPhone app is done through a webview. Same with Twitter. Even if you don't have a mobile app, your website gets a lot of traffic from webviews. And yet, testing on webviews is challenging. There are significant performances differences between UIWebView vs WkWebView, and similarly for Android webview vs the new Chromium webview. And what about home screen apps?! In this talk, Steve Souders discusses the differences across webviews and how that affects performance of mobile web apps.

webviewsmobilephonegap
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web AppBring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App

Mateusz Krzyżanowski: Jak wykorzystać Progressive Web App by nasza webowa aplikacja stała się czymś więcej niż zwykłą stroną internetową? Prezentacja będzie wprowadzeniem w możliwości i dobrodziejstwa jakie daje nam PWA. Porozmawiamy o tym jak zacząć i z jakich narzędzi korzystać.

web developmentprogressive web appsoftware development
HTML5 App Cachehttp://www.w3.org/TR/html5/offline.html
http://www.whatwg.org/specs/web-apps/current-work/ multipage/offline.html CACHE MANIFEST# version 0.0.8CACHE:index.htmlsite.cssjquery-1.4.1.jsemoticon_smile.pngNETWORK:noncached.htmlFALLBACK:/ offline.html
CACHE MANIFEST# version 0.0.8CACHE:index.htmlsite.cssjquery-1.4.1.jsemoticon_smile.pngNETWORK:noncached.htmlFALLBACK:/ offline.html
CACHE MANIFEST# version 0.0.8CACHE:index.htmlsite.cssjquery-1.4.1.jsemoticon_smile.pngNETWORK:noncached.htmlFALLBACK:/ offline.html

Recommended for you

Design+Performance
Design+PerformanceDesign+Performance
Design+Performance

If your performance metric gives all the content in the page the same value, that's not a good metric.

Joomlatools Platform v1.0
Joomlatools Platform v1.0Joomlatools Platform v1.0
Joomlatools Platform v1.0

The Joomlatools Platform is a modern Joomla stack that helps you get started with the best development tools and project structure. Much of the philosophy behind the platform is inspired by the Twelve-Factor App methodology.

joomladevelopment12 factor app
The Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web AppThe Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web App

What makes something a Progressive Web App? A discussion about the qualities and real world use-cases for developing a PWA. This was presented at DevFestDC 2016.

mobile-firstprogressive web appdevfestdc 2016
CACHE MANIFEST# version 0.0.8CACHE:index.htmlsite.cssjquery-1.4.1.jsemoticon_smile.pngNETWORK:noncached.htmlFALLBACK:/ offline.html
<!DOCTYPE HTML><htmlmanifest="manifest.cache">    <head>        <title>Hello AppCache</title>        <link href="site.css" rel="stylesheet“              type="text/css" />        <script src="jquery-1.4.1.js"              type="text/javascript"></script>    </head>    <body>        <h1>Hello AppCache!</h1>    </body></html>
MIME typetext/cache-manifest
Cached Page – First LoadPage with manifest attribute is requested.The page is loaded (including referenced assets)The browser loads the manifest file and parses it.The browser loads indicated files in the background.At this point all of these resources will now be loaded from the browser’s cache!

Recommended for you

Desmistificando o Phonegap (Cordova)
Desmistificando o Phonegap (Cordova)Desmistificando o Phonegap (Cordova)
Desmistificando o Phonegap (Cordova)

This document provides an overview of PhoneGap/Cordova, a framework for developing hybrid mobile apps. It discusses how PhoneGap works by using web technologies like HTML, CSS, and JavaScript wrapped in a native container. It also covers creating a PhoneGap project, adding plugins to access device capabilities, and testing apps locally or building them for app stores. Examples of PhoneGap apps are provided.

fisl16cordovaphonegap
Progressive Enhancement
Progressive EnhancementProgressive Enhancement
Progressive Enhancement

Progressive Enhancement is one of the most important and useful software engineering tools in our web development toolbox, but in practice it's largely ignored. We'll dive into the basics of PE, the common pitfalls (think &lt;noscript> and the newer class="no-js"), how to support Blackberry 4.x and IE6 without a ton of extra work, tools to avoid that violate PE best practices, and how to apply PE pragmatically.

htmlcssjavascript
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web Components

How many photo carousels have you built? Date pickers? Dynamic tables and charts? Wouldn't it be great if there was a way to make these custom elements encapsulated and reusable? Welcome to Web Components! The building blocks are well known: HTML templates, custom elements, HTML imports, and shadow DOM. It's fairly easy to build simple examples. But what happens when performance degrades? Join this discussion of the synchronous and asynchronous nature of web components, and how they can impact the rendering of the entire page.

blockingweb componentshtml imports
Cached Page – Additional LoadPage that the browser has cached is requested.The browser loads the file from its cache.The browser attempts to load the manifest file from the server.If changes have been made to the manifest file, all resources are re-cached.If the current page was re-cached, changes won’t show up unless the user refreshes.
Browser Support – App CacheSource – http://caniuse.com
DEMO – Simple Cached Site
if (navigator.onLine)alert(“We’re online!”);window.addEventListener(“online”, function(e) { alert(“online”); }, true);window.addEventListener(“offline”, function(e) { alert(“offline”); }, true);

Recommended for you

Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance

This document discusses various front-end performance tips for ASP.NET web applications, including minimizing HTTP requests, using a content delivery network, adding expiration headers, compressing content, optimizing stylesheet and script placement, avoiding redirects, caching AJAX requests, and minifying JavaScript. It provides details on tools like FireBug and YSlow for testing front-end performance, and how to implement many of the recommendations in ASP.NET.

aspnethtmlajax
Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?

Progressive Web Apps aim to bring the benefits of native mobile apps to the web. They use newer web capabilities like app manifests and service workers to deliver app-like experiences through the browser. App manifests allow web apps to be installed on home screens and launched full screen like native apps. Service workers enable features like offline access and push notifications. Early adopters are seeing increased user engagement through Progressive Web Apps, with metrics like conversions and time spent improving. While browser support is still evolving, Progressive Web Apps provide a promising approach for delivering high-quality mobile experiences through the web.

progressivewebappsdevternity
Building a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToBuilding a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared To

This document provides an overview of building progressive web apps (PWAs). It discusses the key technologies needed for PWAs including manifest files, service workers, and app shells. It provides examples of how to add a manifest to enable installable web apps, how to cache assets using service workers, and how to send push notifications. While Safari and iOS do not fully support these technologies yet, the document notes they are being developed for future releases.

javascriptpwaweb
Browser Support - onLineSource – http://caniuse.com
DEMO – OnLine/OffLine App
HTML5 Data StorageKey/Value data storage by the browserat either the Session or Persistent level.http://dev.w3.org/html5/webstorage/
sessionStorage.setItem(“key”, “value”);sessionStorage.getItem(“key”, “value”);sessionStorage.removeItem(“key”);sessionStorage.clear();localStorage.setItem(“key”, “value”);localStorage.getItem(“key”, “value”);localStorage.removeItem(“key”);localStorage.clear();

Recommended for you

The Last Mile
The Last MileThe Last Mile
The Last Mile

Everyone's had to endure the "last mile" of developing an application, but what happens if you consider those tasks from day 1? This talk centres around an application we released at Sky Bet earlier this year, the approaches we took, and how we benefited.

programmingdevopsmonitoring
Your Script Just Killed My Site
Your Script Just Killed My SiteYour Script Just Killed My Site
Your Script Just Killed My Site

All of us have a lurking failure in our websites: 3rd party scripts from ads, widgets, and analytics. How is it that one script can bring down your website?

snippetsfrontend spofasynchronous
Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)

1. The document discusses how the author implemented a Progressive Web App (PWA) for their company's product BOXture using React and Django. 2. Key aspects of the PWA implementation included using a service worker to cache assets and provide a fast loading experience, as well as adding web push notifications and a web app manifest. 3. The author details strategies used like cache-first routing and precaching with sw-precache to improve performance and user experience.

Browser Support – StorageSource – http://caniuse.com
DEMO – Local Storage App
Offline DatabaseSource – http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML_5)
Browser Plug-Ins

Recommended for you

Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS

This document provides an overview of Mozilla Web Apps including: - Web Apps can run on platforms like Windows, Mac, Android and more. - They are built with open web technologies like HTML5, CSS, and JavaScript. - A manifest file is needed to define the app and install it using the Mozilla Labs App Runtime extension. - Web Apps can use features like offline storage, IndexedDB, and fullscreen mode.

html5html5 javascriptjavascript
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...

The document discusses upcoming features in HTML5 and beyond for developing mobile web applications, including offline web apps using the Application Cache, storing data locally using Web Storage, geolocation APIs, device orientation, camera access using getUserMedia, and media queries for responsive design. It provides code examples and encourages further reading on mobile web best practices.

chennaihtml5mobile web
HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight

The document compares various features of HTML5 and Silverlight, including platforms supported, storage options, databases, offline capabilities, threading models, communication APIs, notifications, audio/video support, canvas drawing, and other miscellaneous features. Key differences discussed include HTML5's broader platform support versus Silverlight's reliance on the .NET framework and browser plugins. The document provides overviews and comparisons to help understand how the technologies compare in various areas.

silverlighthtml5
Taking Web Applications Offline
Taking Web Applications Offline
DEMO – Developer Survey
Security Concerns

Recommended for you

HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy

The document provides an introduction to developing complex front-end applications using HTML and JavaScript. It discusses how JavaScript modules can be organized in a way that is similar to frameworks like WPF and Silverlight using simple constructs like the module pattern. It also covers asynchronous module definition (AMD) and how modules can be loaded and dependencies managed using RequireJS. The document demonstrates unit testing jQuery code and using pubsub for loose coupling between modules. Finally, it discusses how CSS compilers like SASS can make CSS authoring more productive by allowing variables, nesting and mixins.

silverlightwpfhtml5
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...

HTML5 Migration: HTML5 provides developers with powerful, cross-platforms tools for their mobile and web applications, and they get a powerful alternative to the age-old proprietary tools. As it is an open standard, companies can improve its functionality and feature-set as per their requirements.

migrating to html5flex to html5moving to html5
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience

Incubators, locally and around the world are all the rage. From high profile Y-Combinator, to a number of local setups. But what are incubators all about? What can they do for you? And what’s the catch? Hear Startmate graduates Bugherd talk about their experiences, the highs, the lows, the dream and the realities.

startupincubatorfunding
Other ConcernsError Handling
Logging
Printing

More Related Content

What's hot

Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaProgressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficada
Caelum
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
guestf7bc30
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
Riza Fahmi
 
Souders WPO Web2.0Expo
Souders WPO Web2.0ExpoSouders WPO Web2.0Expo
Souders WPO Web2.0Expo
guest0b3d92d
 
do u webview?
do u webview?do u webview?
do u webview?
Steve Souders
 
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web AppBring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
The Software House
 
Design+Performance
Design+PerformanceDesign+Performance
Design+Performance
Steve Souders
 
Joomlatools Platform v1.0
Joomlatools Platform v1.0Joomlatools Platform v1.0
Joomlatools Platform v1.0
Joomlatools
 
The Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web AppThe Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web App
Christopher Nguyen
 
Desmistificando o Phonegap (Cordova)
Desmistificando o Phonegap (Cordova)Desmistificando o Phonegap (Cordova)
Desmistificando o Phonegap (Cordova)
Loiane Groner
 
Progressive Enhancement
Progressive EnhancementProgressive Enhancement
Progressive Enhancement
Zach Leatherman
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web Components
Steve Souders
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
Chris Love
 
Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?
Christian Heilmann
 
Building a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToBuilding a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared To
Raymond Camden
 
The Last Mile
The Last MileThe Last Mile
The Last Mile
Stephen Melrose
 
Your Script Just Killed My Site
Your Script Just Killed My SiteYour Script Just Killed My Site
Your Script Just Killed My Site
Steve Souders
 
Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)
Yurim Jin
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS
Robert Nyman
 
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...
RIA RUI Society
 

What's hot (20)

Progressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficadaProgressive Web Apps: o melhor da Web appficada
Progressive Web Apps: o melhor da Web appficada
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
 
Souders WPO Web2.0Expo
Souders WPO Web2.0ExpoSouders WPO Web2.0Expo
Souders WPO Web2.0Expo
 
do u webview?
do u webview?do u webview?
do u webview?
 
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web AppBring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
 
Design+Performance
Design+PerformanceDesign+Performance
Design+Performance
 
Joomlatools Platform v1.0
Joomlatools Platform v1.0Joomlatools Platform v1.0
Joomlatools Platform v1.0
 
The Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web AppThe Hitchhiker's Guide to Building a Progressive Web App
The Hitchhiker's Guide to Building a Progressive Web App
 
Desmistificando o Phonegap (Cordova)
Desmistificando o Phonegap (Cordova)Desmistificando o Phonegap (Cordova)
Desmistificando o Phonegap (Cordova)
 
Progressive Enhancement
Progressive EnhancementProgressive Enhancement
Progressive Enhancement
 
High Performance Web Components
High Performance Web ComponentsHigh Performance Web Components
High Performance Web Components
 
Web Front End Performance
Web Front End PerformanceWeb Front End Performance
Web Front End Performance
 
Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?Progressive Web Apps – the return of the web?
Progressive Web Apps – the return of the web?
 
Building a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared ToBuilding a PWA - For Everyone Who Is Scared To
Building a PWA - For Everyone Who Is Scared To
 
The Last Mile
The Last MileThe Last Mile
The Last Mile
 
Your Script Just Killed My Site
Your Script Just Killed My SiteYour Script Just Killed My Site
Your Script Just Killed My Site
 
Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)Progressive Web App (feat. React, Django)
Progressive Web App (feat. React, Django)
 
Mozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJSMozilla Web Apps - Super-VanJS
Mozilla Web Apps - Super-VanJS
 
Html5 and beyond the next generation of mobile web applications - Touch Tou...
Html5 and beyond   the next generation of mobile web applications - Touch Tou...Html5 and beyond   the next generation of mobile web applications - Touch Tou...
Html5 and beyond the next generation of mobile web applications - Touch Tou...
 

Viewers also liked

HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight
Matt Casto
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
David Padbury
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Idexcel Technologies
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Web Directions
 
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
Web Directions
 
HTML 5 Offline Web apps
HTML 5 Offline Web apps HTML 5 Offline Web apps
HTML 5 Offline Web apps
Alexandre Marreiros
 

Viewers also liked (6)

HTML5 vs Silverlight
HTML5 vs SilverlightHTML5 vs Silverlight
HTML5 vs Silverlight
 
HTML5 for the Silverlight Guy
HTML5 for the Silverlight GuyHTML5 for the Silverlight Guy
HTML5 for the Silverlight Guy
 
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...Migrating to HTML5,  Migrating Silverlight to HTML5, Migration Applications t...
Migrating to HTML5, Migrating Silverlight to HTML5, Migration Applications t...
 
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator ExperienceAlan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
Alan Downie and Matt Milosavljevic - BugHerd, the Incubator Experience
 
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
 
HTML 5 Offline Web apps
HTML 5 Offline Web apps HTML 5 Offline Web apps
HTML 5 Offline Web apps
 

Similar to Taking Web Applications Offline

Web Apps and more
Web Apps and moreWeb Apps and more
Web Apps and more
Yan Shi
 
Web app and more
Web app and moreWeb app and more
Web app and more
faming su
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
Carsten Sandtner
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
Carsten Sandtner
 
Chanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling PagecacheChanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling Pagecache
Ajax Experience 2009
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
Timothy Oxley
 
Building WebApp with HTML5
Building WebApp with HTML5Building WebApp with HTML5
Building WebApp with HTML5
Tien Tran Le Duy
 
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
shwetank
 
Local storage
Local storageLocal storage
Local storage
Adam Crabtree
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
Jens-Christian Fischer
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
Shashank Sharma
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
Christopher Schmitt
 
The Power of HTML5 Offline: Mobile and More!
The Power of HTML5 Offline: Mobile and More!The Power of HTML5 Offline: Mobile and More!
The Power of HTML5 Offline: Mobile and More!
FITC
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
Remy Sharp
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
Robert Nyman
 
GWT and PWA
GWT and PWAGWT and PWA
HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)
robinzimmermann
 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
davejohnson
 
Progressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & LearningsProgressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & Learnings
Johannes Weber
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
Robert Nyman
 

Similar to Taking Web Applications Offline (20)

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
 
Always on! ... or not?
Always on! ... or not?Always on! ... or not?
Always on! ... or not?
 
Always on! Or not?
Always on! Or not?Always on! Or not?
Always on! Or not?
 
Chanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling PagecacheChanhao Jiang And David Wei Presentation Quickling Pagecache
Chanhao Jiang And David Wei Presentation Quickling Pagecache
 
Testable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascriptTestable client side_mvc_apps_in_javascript
Testable client side_mvc_apps_in_javascript
 
Building WebApp with HTML5
Building WebApp with HTML5Building WebApp with HTML5
Building WebApp with HTML5
 
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
 
Local storage
Local storageLocal storage
Local storage
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
Web assembly with PWA
Web assembly with PWA Web assembly with PWA
Web assembly with PWA
 
[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design[convergese] Adaptive Images in Responsive Web Design
[convergese] Adaptive Images in Responsive Web Design
 
The Power of HTML5 Offline: Mobile and More!
The Power of HTML5 Offline: Mobile and More!The Power of HTML5 Offline: Mobile and More!
The Power of HTML5 Offline: Mobile and More!
 
HTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & socketsHTML5 tutorial: canvas, offfline & sockets
HTML5 tutorial: canvas, offfline & sockets
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 
GWT and PWA
GWT and PWAGWT and PWA
GWT and PWA
 
HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)HTML5 Offline Web Applications (Silicon Valley User Group)
HTML5 Offline Web Applications (Silicon Valley User Group)
 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
 
Progressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & LearningsProgressive Web Apps - Intro & Learnings
Progressive Web Apps - Intro & Learnings
 
WebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla LondonWebAPIs & Apps - Mozilla London
WebAPIs & Apps - Mozilla London
 

Recently uploaded

RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 

Recently uploaded (20)

RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 

Taking Web Applications Offline

Editor's Notes

  1. There is no such thing as “offline web apps” – this is an oxymoron. However, web applications can take advantage of browser capabilities and work without a network connection.This quote goes alone with a short story about my flight earlier this week, where my upcoming presentation at CodeMash was the topic. When I told my fellow traveler what my session’s title was, this was what he said.
  2. As a case study, I describe my current contract with the State of Ohio. They have a long standing ASP.NET web application and they needed a new portion of that site to be available offline for auditors that visit homes that get state government assistance with their heating bills. These auditors need to record information about the electricity usage of appliances and suggest replacements that would use less energy (thus, saving money).
  3. Internet not available or the website is down.
  4. You (the developer) can control the cache duration through your web server’s cache settings, but its not reliable for offline use. Also, you have no control over the user’s browser settings.
  5. The HTML5 specification is more for browser developers, not web application developers, but it can give you an idea of whats going on.
  6. The cache manifest file contains instructions for the browser to determine how to cache your pages.
  7. The CACHE section includes pages you want the browser to cache, even if the user hasn’t browsed to them. Note that pages that reference the manifest file will automatically be cached, but its nice to be explicit and include them. Also note that resources, such as CSS files, javascript files and images, must be referenced in order to be loaded into the cache.
  8. The NETWORK section is where to include pages that should only be available when a network connection is available.
  9. The fallback section allows you to reference a web page to display when certain pages are requested and there is no network. You can list specific pages, or use a wild card * to define a fall back page for all non-cached pages. The fallback page is implicitly cached by the browser.
  10. The cache manifest file is referenced as an attribute on the HTML tag in your pages that “kick off” caching.
  11. You must associate the “text/cache-manifest” MIME type with the file extension you’re using for the cache manifest file. Typically the file will be named “cache.manifest” but I’m using “manifest.cache” since the “.manifest” file extension is already associated with a different MIME type in IIS 7.Note that you can’t use the ASP.NET Development Server (Cassini) to test this since you can’t set up MIME types.
  12. Step 3 is where things can go wrong. If there is a problem with ANY part of the manifest file, the whole caching process fails.
  13. Note that step 3 will fail if the user is currently working offline or has no network connection.Also, its very important to note that pages that have been changed won’t be re-loaded unless the cache manifest file has also changed.
  14. Note that each browser has a different maximum storage amount for cached pages, and there aren’t currrently any APIs or mechanisms in place for increasing that quota – its up to the user!
  15. Show a simple site and demonstrate caching. Show debug information in Chrome Developr Tools and javascript events that haven’t been covered in slides.
  16. That’s great, but what about doing real work offline … instead of just displaying cached pages?The HTML5 spec calls for a flag that indicates whether the user is online, and events that are raised when the network status changes.
  17. Pretty much the same coverage as AppCache, although webkit based browsers don’t have a “work offline” feature, which means you have to have not network connectivity to change the onLine flag – tough to test when developing against localhost. Also, webkit based browsers won’t update the onLine flag until the page is refreshed (VERIFY!!)
  18. As you can see, pretty much all major browsers support local and session key/value storage.
  19. Web SQL Database was part of the HTML5 specification for a SQLite database implementation in the browser, but several browsers have stated that they won’t support it and its currently only supported on WebKit browsers. The Indexed Database API looks more promising as far as future browser support, but it isn’t a viable solution today. Also, there have been lots of concerns about missing features in Indexed Database such as encryption.
  20. Flash has been the solution for developers who want a local database for a while now with several 3rd party database implementations. Silverlight is a good alternative for .NET developers.
  21. If you want to work offline with a browser plug-in, you don’t really want to cache a page with the plug-in as content – this doesn’t have any advantage over regular caching. Adobe Flash projects can be created to target the AIR runtime which runs out of the browser, has a native SQLite implementation, and is supported in all modern operating systems.
  22. Microsoft’s Silverlight Out of Browser (OOB) capabilities are a nice alternative to Adobe AIR for .NET developers and is supported on modern Windows and Mac operating systems. There is no support for *nix operating systems, although there’s a 3rd party implementation called Moonlight developd by Novell’s Mono team. There is currently no local database suppport, but there are open source implementations.
  23. This demonstration is an ASP.NET MVC web application that allows the user to enter survey results and submit them. There is a form for HTML5 storage and caching, there’s a form for Silverlight in and out of browser, and a page with an AIR installer. All 3 implementations of the survey form post to the save ASP.NET MVC controller action.
  24. Just like anything sent to the browser in an HTML page, anything stored in local storage, no matter what browser or plug-in is used, is available for people to access. Its also possible that users on machines that are shared by multiple users could access each other’s data. Its important to keep this in mind when developing with these features.
  25. There are lots of other things you should take into consideration if you need to build an offline capable web application; including error handling, logging, printing, authentication / authorization…If these are a big deal for you, maybe you should develop a thick client instead!