本来这篇文章想叫《挺起你的HTML5》或者《让HTML5飞》或者神马其他的,但是为了更好的体现主题,我就用这个直白点的题目吧 ~
随 着各种智能手机(iPhone、Android)大行其道,App模式的应用开发变得热火朝天,反观Web领域则黯然失色。然而即将(或者说已 经)到来的HTML5,又为Web注入了新鲜的鸡血,让我等Web码农再次激动不已——我们可以用HTML、CSS、JavaScript开发手机应用 了!可以实现绝大部分Native App的功能,跨平台,自动更新,即需即取……亲,只需要有浏览器哟!而且没有恶心的IE6 ~
做任何一个应用都离不开两种东西:文件和数据。下面我就以一个简单的小应用来介绍一下如何开发一个Web应用,让它能够在Offline的情况下取得文件和数据。
Cache Manifest
首先,请自行实现一个包含图片、JavaScript、CSS的普通HTML页面。
显而易见的,这个页面所包含的文件有HTML、JavaScript、CSS、图片。为了让这个页面能够离线访问,我们必须告诉浏览器,它要缓存那些文件,让我们下次访问的时候直接在本地取即可。
HTML5给我们提供了一种Cache Manifest的机制,让我们实现这样的功能。Cache Manifest是通过一个 .manifest为后缀的文件来配置需要缓存的或者一定要保持联网的文件,格式如下:
CACHE MANIFEST # VERSION 1.0 # 直接缓存的文件 CACHE: index.html img.jpg script.js stylesheet.css # 需要在时间在线的文件 NETWORK: /wp-admin/ # 替代方案 FALLBACK: /ajax/ ajax.html
同时,我们要给页面的html标签添加一个manifest属性:
<html manifest="到Manifest文件的路径.manifest">
还有一点要注意的,就是Manifest文件的MIME类型必须正确,对于Apache有两种设置方法(IIS没研究过),一种是在Apache的配置文件mime.types中加上:
text/cache-manifest manifest
一种是在网站的.htaccess文件中加上:
AddType text/cache-manifest manifest
最后,最好重启一下你的服务器~~~
使用了Cache Manifest机制后,浏览器就不会自动更新你所缓存的内容了,如果想更新客户端缓存的内容,修改.manifest文件的任意内容即可。修改版本号是一种推荐的做法,即上面的“#VERSION 1.0”(这是一个注释),甚至可以说是最佳实践。
如果想了解更多,请看这里。
Local Storage
localStorage是Web Storage存储规范中的一部分(虽然大家很喜欢把它归到HTML5的东西里面去),目前多数浏览器都已经支持了(ie8+也支持喔~)。
这是一个易学易用的东西,用于保存key-value形式的键值对。说到键值对肯定很容易想到Cookie,不过Cookie在每次请求中都会被发送到服务器端,如果使用大数据集合的话会有性能问题,在传输中也会有安全问题。
下面就讲讲localStorage的使用吧。
首先,在召唤localstorage之前当然要检测一下是否可用:
//检测localStorage是否可用 //本段代码来自<Dive Into HTML5> function supports_html5_storage() { try { //不懂为啥要写这么复杂 return 'localStorage' in window && window['localStorage'] !== null; } catch (e) { return false; } }
使用localstorage的方式很简单, 直接像访问对象一样访问它即可:
//设置数据 setItem localStorage.setItem("myKey", "myValue"); //获取数据 getItem var data= localStorage.getItem("myKey"); //还能用数组这样的格式来访问 localStorage["myKey2"] = "myValue2"; var data2 = localStorage["myKey2"]; //移除指定数据 localStorage.removeItem("myKey2"); //清空数据 localStorage.clear();
操作结果可以在“开发人员工具”中看到
一些LocalStorage的注意事项:
- localStorage要通过域名访问的方式才能起作用,直接打开本地文件是不行滴哟~
- 俺们保存的都是string,如果是int或者float的话,get回来之后记得转换一下;
- 本地存储数据在同样域名下的网页间是共享的,即便是在多个浏览器标签页中;
- 使用http://连接的页面是看不到使用https://连接会话中的数据库的。
有了Cache Manifest和LocalStorage这两个利器,是不是觉得HTML5开发手机离线应用开始有这么点眉目了?
原文:http://rolfzhang.com/articles/522.html
相关推荐
为了能够让用户在离线状态下继续访问 Web 应用,开发者需要提供一个 cache manifest 文件。这个文件中列出了所有需要在离线状态下使用的资源,浏览器会把这些资源缓存到本地。本节先通过一个例子展示 cache manifest...
使用 HTML5 开发离线应用[转载]
全面的离线应用示例,是想用HTML5开发离线应用的好样例。
21秋《HTML5开发基础与应用》离线作业1.docx
Web2.0技术鼓励个人的参与,每个人都是Web内容的撰写者。如果Web应用能够提供离线的功能,让用户在没有网络的地方...HTML5离线功能中的离线资源缓存、在线状态检测、本地数据存储等内容,并举例说明了如何使用HTML5
支持离线 Web 应用开发是 HTML5 的另...HTML5 及其相关的 API让开发离线应用成为现实。 离线检测 要知道设备是否在线还是离线,HTML5 定义了一个 navigator.onLine 属性,这个属性值为 true 表示设备能上网,值为 false
21秋《HTML5开发基础与应用》离线作业2.docx
互联网已经日益成为应用程序开发的默认平台,提供了传统胖客户端模型(C/SClient/Server)的替代模型,基于浏览器服务器(B/SBrowser/Server)的瘦客户端模式应用程序开始占据主流位置,Web的广泛使用解决了C/S应用...
调试webview(类似Chrome://inspect的功能)国内404,大家都懂的,经过我各种折腾制作完成,不会出现空白页面,无需科学那啥,不限机型,Hybrid App等H5混合应用开发必备,
既直观展示了HTML5的内容描述标签、直接支持表单验证、视频音频标签、网页元素的拖拽、工作线程等新特性,又介绍了利用DOMStorage 和Web SQL Database两种存储机制进行离线应用开发的方法。文章对基于HTML5的应用开发...
《HTML5移动应用开发入门经典》总共分为24章,以示例的方式对如何使用HTML5及相关技术进行移动应用开发做了全面而细致的介绍。《HTML5移动应用开发入门经典》首先讲解了HTML5的起源以及它为什么适用于移动设备,然后...
《HTML5移动应用开发入门经典》总共分为24章,以示例的方式对如何使用HTML5及相关技术进行移动应用开发做了全面而细致的介绍。《HTML5移动应用开发入门经典》首先讲解了HTML5的起源以及它为什么适用于移动设备,然后...
HTML5的离线应用功能可以使得WebApp即使在网络断开的情况下仍能正常使用,这是个非常有用的功能。近来工作中也要用到HTML5离线应用功能,由于是在Android平台上做,所以自然而然的选择Webview来解析网页。但如何使...
有了离线功能和本地持久存储特性,您不管是在线还是离线状态都可以交付同样丰富的用户体验,这些体验以前只可在专用的桌面应用程序开发框架中获得。在本文中,您将了解如何利用HTML5的离线功能和本地持久存储特性。...
全书一共分为10章,全书以HTML 5的使用环境和基本特征开篇,依次详细地讲解了HTML 5中新增的交互元素、重要元素、表单与文件、视频与音频、绘画、数据存储、离线应用、网络应用和拖放等核心内容。
This a very good html5 demo for Android development-This is a very good html5 demo for Android development Android应用开发新路线 ...如何在Android中构建HTML5离线应用? 如何使用Canvas进行绘图?
通过本书的学习,读者可以使用HTML5开发出炫目的多媒体应用和网站。 ● 使用canvas实现绘图、动画、特效和事件 ● 使用原生的<video>元素创建和观看视频 ● 使用原生的<audio>元素添加并播放音频 ●...
开发离线Web应用需要几个步骤,其中一个就是离线下必须能访问一定的资源(图像 JS css等) HTML5引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在离线时进行访问。 :pushpin:应用程序缓存为应用带来三个...
在手机端,有一个非常棒的工具叫做PhoneGap,使用这个快速开发平台,任何人都可以使用HTML5+CSS3+JavaScript开发出安卓,iOS等应用。PhoneGap的最好的一个特点是,你并不需要联网,不需要连接web服务器,你可以从把...