html5支持离线应用吗

html5支持离线应用。离线应用是html5新增的特性,利用本地缓存机制,使得用户可以在网页或应用在没有网络的情况下依然可以使用。为了能够让Web应用程序在离线状态的时候也能正常工作,必须把所有构成Web应用程序的资源文件,诸如HTML文件,CSS文件,JavaScript脚本文件放在本地缓存中,这样当服务器没有和网络连接时,也可以利用本地缓存中的资源文件来正常运行应用程序。

html5支持离线应用吗

本教程操作环境:windows7系统、HTML5版、Dell G3电脑。

HTML5新增了离线应用,利用本地缓存机制,离线应用使得我们可以在网页或应用在没有网络的情况下依然可以使用。当客户端本地与web应用程序的服务器没有建立连接时,也能正常在客户端本地使用该web应用程序进行有关操作。

为了能够让Web应用程序在离线状态的时候也能正常工作,必须把所有构成Web应用程序的资源文件,诸如HTML文件,CSS文件,JavaScript脚本文件放在本地缓存中,当服务器没有和网络连接时,也可以利用本地缓存中的资源文件来正常运行Web应用程序。

离线应用的使用需要以下几个步骤:

立即学习“前端免费学习笔记(深入)”;

离线检测(确定是否联网)

访问一定的资源

有一块本地空间用于保存数据(无论是否上网都不妨碍读写)

使用HTML5离线web应用

1、检查浏览器的支持情况的方法

  if(window.applicationCache){        //浏览器支持离线应用  }

登录后复制

2、关于描述文件
描述文件用来列出需要缓存和不需要缓存的资源,以备离线时使用。
描述文件的扩展名以前用.manifest,现在推荐使用.appcache,并且描述文件需要配置正确的MIME-type,即”text/cache-manifest”,必须在web服务器上进行配置(文件编码必须是UTF-8)。不同的服务器有不同的配置方法,具体这里不详述。

首行必须以以下字符串开始

    CACHE MANIFEST

登录后复制

剩下的就是要缓存的文件的URL,一行一个(相对URL是相对于清单文件而言的,不是相对于文件)

    #以“#”开头的是注释    common.css    common.js

登录后复制

这样这个文件中列举的所有的文件都会被缓存

在清单中,可以使用特殊的区域头来标识头信息之后的清单项的类型,上面的最简单的缓存属于”CACHE:”区域。
像这样

    #该头信息之后的内容需要缓存    CACHE:    common.css    connom.js

登录后复制

以”NETWORK:”开头的区域列举的文件,总是从线上获取,不缓存

NETWORK:头信息支持通配符”*”,表示任何未明确列举的资源,都将通过网络加载

    #该头信息之后的内容不需要缓存,总是从线上获取    NETWORK:    a.css    #表示以name开头的资源都不要缓存    name/

登录后复制

以”FALLBACK:”开头的区域中的内容,提供了获取不到缓存资源时的备选资源路径
该区域中的内容,每一行包含两个URL(第一个URL是一个前缀,任何匹配的资源都不被缓存,第二个URL表示需要被缓存的资源)

    FALLBACK:    name/  example.html

登录后复制

一个清单可以有任意多个区域,且位置没有限制。

3、搭建离线应用程序
假设我们要构建一个包含css,js,html的单页应用,同时要为这个单页应用添加离线支持。

要将描述文件与页面关联起来,需要使用html标签的manifest特性指定描述文件的路径

    

登录后复制

开发离线应用的第一步就是检测设备是否离线

HTML5新增了navigator.onLine属性
当该属性为true的时候表示联网,值为false的时候,表示离线

  if(navigator.onLine){      //联网  }else{      //离线  }

登录后复制

** 注:IE6及以上浏览器及其他标准浏览器都支持这个属性 **

online事件(IE9+浏览器支持)

当网络从离线变为在线的时候触发该事件,在window上触发该事件,不需要刷新

 window.online = function(){        //需要触发的事件    }

登录后复制

offline事件(IE9+浏览器支持)
当网络从在线变为离线的时候触发该事件,和online事件一样,在window上触发该事件,不需要刷新

window.offline = function(){      //需要触发的事件  }

登录后复制

应用缓存

应用缓存(Application Cache)是从浏览器的缓存中分出来的一块缓存区(大小根据具体浏览器而定,一般是5M)

应用缓存和网页缓存的区别:

应用缓存为整个web应用程序服务,网页缓存服务于单个网页应用缓存只缓存指定页面需要的指定资源(可人为控制),任何网页都具有网页缓存(浏览器默认行为)应用缓存不会随着清除浏览器缓存而消失应用缓存不会像网页缓存那样,老数据会被最新一次的新数据替代应用缓存可以离线访问,网页缓存必须在线访问应用缓存可靠,可控,网页缓存不可控

应用缓存的优势

离线浏览速度更快–已缓存资源加载更快减少负载–浏览器只从服务器下载更新过的文件

一个web应用首次下载并缓存之后,任何加载请求都优先来自于缓存,因此可以实现离线缓存。如果不需要使用离线缓存了,就需要在服务器端删除描述文件,或者删除HTML页面中的manifest属性。

一旦应用被缓存,则缓存始终不变。那么,怎样才能改变缓存

用户清空应用缓存manifest文件被修改使用update()方法更新缓存

如果服务器上的文件有所修改的话,那么修改描述文件中注释行的日期或者版本号是一个不错的使浏览器重新缓存文件的办法

此外,我们还可以使用HTML5提供的API来操作和更新缓存

applicationCache API

applicationCache API是一个操作应用缓存的接口。新的window.applicationCache对象可以触发一系列与缓存状态相关的事件。
这个对象有一个status属性,值为常量,表示缓存状态

0:没有与页面相关的应用缓存(未缓存)1:应用缓存未得到更新(空闲)2:正在下载描述文件并检查更新(检查中)3:应用缓存正在下载描述文件中指定的资源(下载中)4:应用缓存已经更新了资源,而且所有资源都已下载完毕,可以通过swapCache()来使用了(更新就绪)5:应用缓存的描述文件不存在了,页面无法再访问应用缓存(已过期)

这个对象有以下事件,表示其状态的改变

每次载入一个设置了manifest属性的HTML文件,首先会触发checking事件如果应用程序已经缓存,并且清单文件没有改动,则浏览器触发noupdate事件如果应用程序已经缓存,并且清单文件发生改动,则浏览器触发downloading事件,下载完毕后触发updateready事件如果应用程序未缓存,则downloading事件和progress事件都会触发,但是下载完成后触发cached事件而不是updateready事件如果处于离线,无法检测清单状态,则触发error事件,如果引用一个不存在的清单文件,也会触发error事件如果处于在线,应用也缓存了,但是清单文件不存在,则会触发obsolete事件,并将应用程序从缓存中清除。

一般来讲,这些事件会随着页面加载按上述顺序依次触发

update()方法

通过update()方法也可以手工干预,让应用缓存为检查更新而触发上述事件

    applicationCache.update();

登录后复制

update()一经调用,应用缓存就会去检查描述文件是否更新,触发checking事件,然后页面就会像刚刚加载一样,继续执行后续操作。如果触发了cached事件,则说明应用缓存已经准备就绪,不会再发生其他操作。

swapCache()方法

如果触发了updateready事件,则说明新版本的应用缓存已经可用,需要调用swapCache()方法来启用新的应用缓存。

    applicationCache.onupdateready = function(){        applicationCache.swapCache();    };

登录后复制

浏览器检查清单文件,以及更新缓存的操作是异步的,因此可能是在载入旧缓存之后进行,因此可能需要载入两次才能显示最新的内容,因此需要提示用户

    window.applicationCache.onupdateready = function(){        var con = comfirm('有新内容可用,是否重新加载?');        if(con){            location.reload();        }    }

登录后复制

相关推荐:《html视频教程》

以上就是html5支持离线应用吗的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2927533.html

(0)
上一篇 2025年3月11日 19:26:39
下一篇 2025年2月23日 12:28:32

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • html5不能用align吗

    html5中不能使用align属性,该属性在html5中已经不再支持;align属性主要是影响设置元素的水平对齐方式,给表格、文字、及图像等元素设置align属性,其表现形式是不一致的,可以利用css中的“text-align”属性来代替a…

    2025年3月11日
    200
  • html5的pc端是什么

    html5的pc端指的是网络世界里可以连接到电脑主机的那个端口;pc是“Personal Computer”的简写,也是电脑的统称,是基于电脑的界面体系,与移动端相对,PC端和移动端的屏幕尺寸不同,导致显示的内容也会有所差异。 本教程操作环…

    2025年3月11日
    200
  • vue属于html5吗

    vue不属于html5;vue是一套用于构建用户界面的渐进式JavaScript框架,同时也是典型的MVVM模型的框架,而html5是html的新标准,是一种超文本编辑语言,是用来创建网页的标准标记语言,因此二者之间并不存在属于的关系。 本…

    2025年3月11日
    200
  • mp3格式不是html5支持的音频格式

    mp3格式是html5支持的音频格式。HTML5支持三种音频格式:1、MP3格式,它被设计用来大幅度地降低音频数据量;2、Ogg格式,它是一种完全免费、开放和没有专利限制的音频压缩格式;3、Wav格式,是微软公司开发的一种声音文件格式。 本…

    2025年3月11日
    200
  • html5页面是静态网页吗

    纯HTML5写的页面是静态网页。如果设计动态数据(网页),在前端需要配合使用javascript技术实现用户和网页的交互;在服务器端,需要配合使用php、asp、jsp等脚本语言编写数据库查询,一整套流程方可实现要求。 本教程操作环境:wi…

    2025年3月11日
    200
  • html5中px和em的区别是什么

    区别:1、单位长度不同,px是数字化图像长度单位,em是字符宽度的倍数;2、相对对象不同,px是相对于显示器屏幕分辨率而言的,em是相对于当前对象内文本的字体尺寸。3、px的值是固定的,指定是多少就是多少,计算比较容易;em的值不是固定的,…

    2025年3月11日
    200
  • 利用html语言编写网页,实现超级链接的标记是什么

    实现超级链接的标记是“”。a标签可以定义超链接,用于从一张页面链接到另一张页面,语法“超链接文本”;a标签中最重要的属性是href,它用于指示链接目标,不可省略,否则会失去链接功能。 本教程操作环境:windows7系统、HTML5版、De…

    2025年3月11日
    200
  • html换行标签是什么

    html换行标签是“”。br标签能够在指定的位置插入一个换行符,它会告诉浏览器立即停止当前的文本流,并在下一行的左边,或者在左对齐的内联图形或表格的右边开始继续输出文本流。br是一个空标签,这意味着它没有结束标签,写法为“”或者“”。 本教…

    2025年3月11日
    200
  • html5中marquee标签怎么用

    在html5中,marquee标签用于创建滚动文本或图像,语法“文本或图像)”;它可以让包含于标签对中的内容在网页上水平或垂直向下滚动,通过设置属性可以控制当文本到达容器边缘发生的事情,例如behavior属性可以控制滚动方式(循环滚动、只…

    2025年3月11日 编程技术
    200
  • html5和ih5有啥区别

    html5和ih5的区别:html5是指html的第5个版本,是描述网页的标准语言,而ih5是一款SAAS软件,在线无代码制作H5广告、制作H5网页,交互视频,户外交互大屏等,是一套完全自主研发的设计工具,允许在线编辑网页交互内容。 本教程…

    2025年3月11日
    200

发表回复

登录后才能评论