HTML5 离线应用之打造零请求、无流量网站的解决方法

2016-02-19 11:22 4 1 收藏

有了下面这个HTML5 离线应用之打造零请求、无流量网站的解决方法教程,不懂HTML5 离线应用之打造零请求、无流量网站的解决方法的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

前言

今天Web应用程序已经很复杂了,以现在的发展,会将越来越复杂,但他有一个致命缺点,不能脱离internet链接,因此在HTML中新增了一API,

它使用一个本地存储机制很好地解决了这个问题,为离线web应用铺平了道路。
本地缓存于浏览器缓存

代码如下:

本地缓存是为整个web应用程序服务
浏览器缓存只对单个网页服务/pp任何网页都具有网页缓存
本地缓存只缓存那些你指定缓存的页面/pp网页缓存不可靠、不安全,因为我们不知道网站中到底缓存了哪些页面、哪些资源
本地缓存可以控制对哪些内容进行缓存

manifest文件

web应用程序本地缓存是通过每个页面的manifest文件来管理的,manifest是一简单文本,在该文件中以清单的形式列举了需要被缓存的不需要被缓存的文件的名字、路径。

可以为每个页面单独指定manifest也可以为整个应用程序指定,例我们为hello.htm的设置:

代码如下:

CACHE MANIFEST
CACHE:
other.html
hellow.js
images/myphoto.jpg
NETWORK:
http://LuLinniu/NotOffline
NotOffline.asp
*
FALLBACK:
online.js locale.js
CACHE:
newhellow.html
newhellow.js

在manifest文件中,第一行必须是CACHE MANIFEST,以把文本的作用告诉浏览器,即对本地缓存中的资源文件进行具体设置。
同时真正运行离线web应用程序时,需要对服务器进行配置,让服务器支持text/cache-manifest这个mime类型。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

在指定文件源文件时可以把资源文件分为三类,CACHE、NETWORK、FALLBACK

代码如下:
/pp在CACHE类别中指定需要被缓存在本地的资源文件,为某个页面指定需要本地缓存的资源文件时,不需要把这个页面本身指定在CACHE类别中,
因为如果一个页面具有manifest文件,浏览器会自动对该页面进行本地缓存/ppNETWORK类别为显式指定不进行缓存的资源文件,这些文件只有建立服务器端链接才能访问,本例使用通配符*表示没有进行记录的都不缓存/ppFALLBACK类别中的每行中指定两个资源文件,第一个资源文件为能够在线访问时使用的资源文件,第二个为不能在线访问时使用的本地缓存文件

浏览器与服务器交互过程

当使用离线web应用程序进行工作时,有必要了解浏览器与服务器之间的交互过程:

代码如下:

比如一个http://LuLingniu,以index.htm为主页,该主页使用index.manifest,
在文件中缓存index.htm,hello.js,hello.jpg,首次访问时流程如下:
浏览器请求url
服务器返回index.htm首页
浏览器解析index.htm网页,请求页面上所有资源文件
服务器返回资源文件
浏览器处理manifest文件,请求manifest中需要缓存的文件,即使请求过亦会再请求
服务器返回需要缓存的文件
浏览器对本地缓存进行更新,存入资源文件,并触发一个事件通知本地缓存更新/pp再次打开该URL
请求url
浏览器发现页面被缓存,于是使用本地缓存文件
解析文件
浏览器像服务器请求manifest文件
服务器返回304,通知manifest文件没有变化(若是改变将会有所不同)

applicationCache对象

该对象代表了本地缓存,可以用它来通知用户本地缓存已经被更新,也允许手动更新本地缓存。

前面当浏览器对本地缓存做了更新装入新资源文件时,会触发applicationCache对象的updateready事件,通知本地缓存已被修改,然后提示用户手动刷新页面。
swapCache

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

swapCache方法用来手动执行本地缓存的更新,它只能在applicationCache对象的updateReady事件触发时调用,

即当资源文件发生改变时,可使用此方法手工缓存更新。

来源:http://www.tulaoshi.com/n/20160219/1597251.html

延伸阅读
标签: Web开发
本文分为两个部分,第一部分讨论跨平台网站的可行性,第二部分讨论viewport是如何设置的 开发跨平台网站? 靠标签的自适应宽高实现多尺寸通用!? 标签宽高可以自适应没错,我们很早就可以这么做了。但是你会发现很多pc端的传统网站还是会把宽度固定。(淘宝采用1000px宽度,搜狐950px...)为什么我们不让网站自适应宽高呢?那是因为,...
标签: Web开发
W3C 在 2008年 1 月 22 日发布了最新的 HTML 5 工作草案。HTML 5 工作组包括 AOL, Apple, Google, IBM, Microsoft, Mozilla, Nokia, Opera 以及数百个其他的开发商。HTML 5 中的一些新特性:嵌入音频、视频、图片的函数、客户端数据存储,以及交互式文档。其他特性包括新的页面元素,比如 header, section, footer, 以及 figure。 通过制...
标签: Web开发
html5与css3小应用,感兴趣的话,可以点击下载,适合ie9+,ff,chrome等浏览器  
《鬼泣5》开始游戏无反应的解决方法 近日,很多玩家反映游戏打上二号补丁后,双击游戏图标,无任何反应,如何才能解决呢,下面就来教各位玩家解决方法。 ①直接点游戏的启动程序,不用开始游戏。 ②打开任务管理器,快捷键ctrl+alt+d e l e t e,点进程,看看有没有类似DMC字样的进程,点击,结束进程。找到原始启动程序,右键,以管理...
标签: Web开发
打开一个网页,加载完后,如果突然断网了,那么你刷新后那页面就没了。 有没有想过,刷新后页面还是刚刚才页面,在新窗口中再打开一个页面,输入相同的网址,在断网的状态下打开还是原来那个页面。。HTML5的离线应用正提供了这样一个功能。 在页面中的数据加载时,你可以自己设定一些要缓存的图片、flash、css、js、html等文件,等下次不能联...

经验教程

283

收藏

69
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部