只需一步,快速开始
thrall
超级版主
14
174
2072
金币
主题
帖子
HTML5离线缓存是基于这个缓存清单来确定缓存文件的,如下的图片显示这个文件的格式:
HTML5规范规定这个清单文件必须以text/cache-manifest格式发送到客户端,但是现在没有标准的后缀来识别这一类型文件。在ASP.NET中,可以通过一种变通的方式来达到这一目的。 1)把清单文件保存为单独文件,可以加任何后缀名,假设保存为manifest.mf。 2)新建一个ASP.NET handler,Manifest.ashx 代码如下: <%@ WebHandler Language="C#" Class="Manifest" %> using System; using System.Web; public class Manifest : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/cache-manifest"; context.Response.WriteFile(context.Server.MapPath("manifest.mf")); } public bool IsReusable { get { return false; } } }复制代码然后在首页页面中把这个handler标识为清单文件: <html manifest="Manifest.ashx"">复制代码如下是添加了缓存清单的aspx页面: 以上两个步骤就完成了离线应用程序的构建,当程序第一次加载时,会加载这个缓存清单,并且根据清单中文件列表缓存文件,当浏览器再次加载时就不会去 服务器中加载缓存过的文件,可以想象,如果我们把一些静态的网页添加为缓存文件,那么用户只需要第一次下载这些缓存的文件,以后就可以向本地应用一样,无 需再连接网络。需要注意的点虽然离线应用是一个非常酷的应用,但是在使用的过程中也会出现一些困扰,当我们更改页面的内容时,会发现修改的内容并没有起作用,原因可能是我们没 有升级缓存清单的版本,另外即使缓存清单更改完成后,浏览器也并不是立即会更新缓存的内容,浏览器下载和缓存内容完全是在后台自动进行的,所以在实际的开 发过程中,因为有这些困扰,所以最好是在开发过程中禁用这种离线缓存的功能,等项目发布的时候再添加。我们无法控制浏览器的缓存过程,但是离线应用提供了 一些接口,我们可以调用这些API来让浏览器更新缓存的内容,ApplicationCache.update() 是用来更新缓存的内容,ApplicationCache.swapCache() 是加载最新版的Web应用。离线应用在浏览器中的表现以下是离线应用在各个浏览器中的表现形式,当用浏览器打开应用了离线功能的页面,浏览器的表现也是不一样的,FireFox中会提示是否容许保存内容到本地,效果如下: 当点击Allow,浏览器就会自动下载要缓存的内容,并保存到本地,当再次打开页面时,浏览器首先会加载本地存储的内容。在Chrome和safari浏览器下,浏览器会自动缓存内容而不会有任何的提示,但在Chrome中你可以查看缓存的内容: 同时也可以看到当前缓存的状态,如上的图片显示当前的状态是UNCACHED,意思是还没有把要缓存的内容缓存。具体的状态值可以参考HTML5离线应用规范。总结以上就是介绍如何在ASP.NET中应用HTML5离线功能,在其它的平台中的设置也是类似的,不同点在于如何把缓存文件以text/cache- manifest格式发送到客户端。HTML5离线应用是HTML5规范中的一个非常重要的特性,用户可以随时随地打开浏览Web应用,而不需要关心网络 是否已经连接,这极大地提高了Web应用在用户中的体验度,也极大地提高应用程序的加载速度。
关注“葡萄城社区”
西安葡萄城软件有限公司 专业的软件开发技术和低代码平台提供商
陕ICP备2020018819号 | 陕公网安备:61019002000258 | 隐私政策 | 网站地图
邮箱: info.xa@grapecity.com | © 2024 葡萄城软件,保留所有权利
Archiver| 手机版| 小黑屋|