With HTML5 it is easy to make an offline version of a web application, by creating a cache manifest file.
What is Application Cache?
HTML5 introduces application cache, which means that a web application is cached, and accessible without an internet connection.Application cache gives an application three advantages:
- Offline browsing - users can use the application when they're offline
- Speed - cached resources load faster
- Reduced server load - the browser will only download updated/changed resources from the server
Browser Support
Internet Explorer 10, Firefox, Chrome, Safari and Opera support Application cache.
HTML5 Cache Manifest Example
The example below shows an HTML document with a cache manifest (for offline browsing):Example
<!DOCTYPE HTML>
<html manifest="demo.appcache">
<body>
The content of the document......
</body>
</html>
<html manifest="demo.appcache">
<body>
The content of the document......
</body>
</html>
Try it yourself »
Cache Manifest Basics
To enable application cache, include the manifest attribute in the document's <html> tag:
<!DOCTYPE HTML>
<html manifest="demo.appcache">
...
</html>
<html manifest="demo.appcache">
...
</html>
The recommended file extension for manifest files is: ".appcache"
A manifest file needs to be served with the correct MIME-type, which is "text/cache-manifest". Must be configured on the web server.
The Manifest File
The manifest file is a simple text file, which tells the browser what to cache (and what to never cache).The manifest file has three sections:
- CACHE MANIFEST - Files listed under this header will be cached after they are downloaded for the first time
- NETWORK - Files listed under this header require a connection to the server, and will never be cached
- FALLBACK - Files listed under this header specifies fallback pages if a page is inaccessible
CACHE MANIFEST
The first line, CACHE MANIFEST, is required:
CACHE MANIFEST
/theme.css
/logo.gif
/main.js
/theme.css
/logo.gif
/main.js
NETWORK
The NETWORK section below specifies that the file "login.asp" should never be cached, and will not be available offline:
NETWORK:
login.asp
login.asp
NETWORK:
*
*
FALLBACK
The FALLBACK section below specifies that "offline.html" will be served in place of all files in the /html/ catalog, in case an internet connection cannot be established:
FALLBACK:
/html/ /offline.html
/html/ /offline.html
Updating the Cache
Once an application is cached, it remains cached until one of the following happens:- The user clears the browser's cache
- The manifest file is modified (see tip below)
- The application cache is programmatically updated
Example - Complete Cache Manifest File
CACHE MANIFEST
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.asp
FALLBACK:
/html/ /offline.html
# 2012-02-21 v1.0.0
/theme.css
/logo.gif
/main.js
NETWORK:
login.asp
FALLBACK:
/html/ /offline.html
Notes on Application Cache
Be careful with what you cache.Once a file is cached, the browser will continue to show the cached version, even if you change the file on the server. To ensure the browser updates the cache, you need to change the manifest file.
Note: Browsers may have different size limits for cached data (some browsers have a 5MB limit per site).
0 comments:
Post a Comment