前言

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

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

本地缓存于浏览器缓存

复制代码代码如下:

本地缓存是为整个web应用程序服务

浏览器缓存只对单个网页服务

任何网页都具有网页缓存

本地缓存只缓存那些你指定缓存的页面

网页缓存不可靠、不安全,因为我们不知道网站中到底缓存了哪些页面、哪些资源

本地缓存可以控制对哪些内容进行缓存

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类型。

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

复制代码代码如下:

在CACHE类别中指定需要被缓存在本地的资源文件,为某个页面指定需要本地缓存的资源文件时,不需要把这个页面本身指定在CACHE类别中,

因为如果一个页面具有manifest文件,浏览器会自动对该页面进行本地缓存

NETWORK类别为显式指定不进行缓存的资源文件,这些文件只有建立服务器端链接才能访问,本例使用通配符*表示没有进行记录的都不缓存

FALLBACK类别中的每行中指定两个资源文件,第一个资源文件为能够在线访问时使用的资源文件,第二个为不能在线访问时使用的本地缓存文件

浏览器与服务器交互过程

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

复制代码代码如下:

比如一个http://LuLingniu,以index.htm为主页,该主页使用index.manifest,

在文件中缓存index.htm,hello.js,hello.jpg,首次访问时流程如下:

浏览器请求url

服务器返回index.htm首页

浏览器解析index.htm网页,请求页面上所有资源文件

服务器返回资源文件

浏览器处理manifest文件,请求manifest中需要缓存的文件,即使请求过亦会再请求

服务器返回需要缓存的文件

浏览器对本地缓存进行更新,存入资源文件,并触发一个事件通知本地缓存更新

再次打开该URL

请求url

浏览器发现页面被缓存,于是使用本地缓存文件

解析文件

浏览器像服务器请求manifest文件

服务器返回304,通知manifest文件没有变化(若是改变将会有所不同)

applicationCache对象

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

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

swapCache

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

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

手机修改html离线网页内容,HTML5 离线应用之打造零请求、无流量网站的解决方法...相关推荐

  1. win10不显示手机连接到服务器,手机连接win10系统热点显示无互联网连接的解决方法...

    在笔记本电脑中,可以通过wifi共享热点给手机共享上网,阿然而近日有不少win10系统用户发现手机连接热点的时候,显示无互联网连接,虽然连接上了wifi但是没有显现网络,遇到这样的情况如何解决,本文就 ...

  2. iphone修改无服务器,教大家iPhone8/8plus无服务的多种解决方法

    不少朋友问我iPhone8手机无服务怎么办这个问题,今天小编整理了就iPhone8手机无服务怎么办这一方面的信息分享给大家 iPhone8/8plus无服务的解决方法 1.一般处理iPhone8plu ...

  3. android手机存储速度慢,安卓内存泄露后台应用被迫关闭、系统速度慢的解决方法...

    安卓内存泄露怎么办?升级到lollipop的android设备用户们有没有遇到后台应用被迫关闭.系统速度慢.经常重启等情况呢?其实这是内存泄露问题,下文小乐哥分享安卓内存泄露解决办法,遇到朋友可以节操 ...

  4. 5s系统升级无服务器,苹果iPhone5s手机显示无服务现象的解决方法图解

    iPhone5s无服务的解决方法.很多朋友在使用iPhone5s的时候会出现"无服务"的情况,下面就让小编为大家讲解一下iPhone5s无服务的解决方法. 1)可以通过在手机中的& ...

  5. html离线教程,HTML5离线存储整理

    前端html部分 //canvas.html 浏览器离线存储 配置文件 CACHE MANIFEST #v1.0.5 #需要缓存的文件 CACHE: /photos/canvas.png #不需要缓存 ...

  6. html开启页面离线缓存,HTML5 离线缓存

    离线缓存 applicationCache 第一次加载后将数据缓存,如果没有清除缓存,下一次没有网络也能加载. 使用 1. 使用 manifest 属性,引入 .appcache 文件 每个指定了 m ...

  7. tomcat html5离线缓存,HTML5离线缓存在tomcat部署可实现图片flash等离线浏览打

    tomcat能解析html5的页面吗?为什么我的H5页面放到...为什么我的H5页面放到tomcat里面后,在手机端用服务器地址访问时,页面html5本身不支持hbuilder的扫码功能,native ...

  8. 修改添加用户权限,提示“无法枚举容器中的对象 访问被拒绝” 解决方法

    描述 右键→属性→安全选项卡→编辑→添加某用户,确定后提示"无法枚举容器中的对象 访问被拒绝". 解决步骤 点击 高级 点击 更改 输入e,点击检查名称,点击确定.这样就更改为Ev ...

  9. html5爆音,刻录音乐CD出现爆音的解决方法

    为什么刻录音乐光盘会有爆音?  刻录音乐CD出现爆音的解决方法. 制作音乐CD盘时,有时会发现有些CD盘听起怪怪的,劈哩啪喇的听起来很难听,这些声音我扪称作爆音.爆音的产生与刻录机读写头的设 置有关, ...

  10. 360浏览器无法看html5,win7在360浏览器上不能看flash的彻底解决方法推荐

    win7系统在360浏览器上不能看flash的页面,如何才能彻底解决呢?很多用户在使用360浏览器的时候,会出现不能播放flash的问题,具体是哪个环节的原因用户们并不清楚,在用户们描述了相关的情况之 ...

最新文章

  1. 限量!“Java成长笔记”Spring Boot/Sentinel/Nacos高并发
  2. QML的默认属性default property
  3. #35 string(缩点+动态规划)
  4. Delphi:第一个hello world程序
  5. java centertoscreen_java screen的配置详解及注意事项
  6. python 解析json typeerror_TypeError:在使用Python解析JSON时,字符串索引必须是整数?...
  7. jQuery Mobile事件,开发全解+完美注释
  8. 理解createTrackbar函数
  9. [网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
  10. 2000-2020年中国地面气象数据:从NOAA到分省面板
  11. 线性代数 --- 矩阵求逆的4种方法
  12. 中南财经政法大学2014-2015学年学生奖励汇总表
  13. Tableau对Airbnb房源的经营分析
  14. matlab画黎曼函数,[2018年最新整理]matlab画复数函数图象和黎曼面.docx
  15. selenium登录某宝跳过反爬监测及滑块验证
  16. 机器学习算法 | Python实现k-近邻算法
  17. mybatis与mysql时间总是慢8小时
  18. 7-6 福到了 (15分)
  19. ES 7.0.1安装head和sql插件报错处理
  20. im即时通讯开发如何理解定位技术

热门文章

  1. 干货|手把手教你写单片机的结构体
  2. 技术方案:网吧无盘存储解决方案(转)
  3. oracle 10g 下载方法
  4. java 设置session超时_Java设置session超时(失效)的时间
  5. Silverlight下载-Silverlight 1.1 Tools下载
  6. 系统学Android从零开始,附超全教程文档
  7. VBoxGuestAdditions加载不了
  8. 一三五、服务器部署Node项目、Vue spa静态项目、ssr项目
  9. 俄罗斯地名 中文 英文 俄文
  10. 基于神经网络的文本特征提取——从词汇特征表示到文本向量