应用程序缓存能做什么?

  1. 可以在脱离网络的条件下离线访问。
  2. 减少读取服务器文件,减轻服务器的访问压力。
  3. 优化网站打开速度。

如何启用应用缓存?

第一步:给服务器添加新的MIME:扩展名:.appcache  MIME类型:text/cache-manifest

第二步:创建appcache文件:

appcache文件可以看作缓存规则配置文件。appcache文件内可以定义需要缓存的文件列表、不缓存的文件列表、及文件不存在时时的替补资源。

appcache文件分成三部份:

  1. CACHE:          #设置需要缓存的资源
  2. NETWORK:    #设置不缓存的资源,该资源在离线时不可用
  3. FALLBACK:    #规定如果无法建立因特网连接时,用指定的资源替换

appcache文件示例,比如将此文件保存到网站根目录路径:/manifest/article_lists.appcache

 CACHE MANIFEST
# 井号用来注释
# CACHE表示需要缓存的文件
# CACHE不支持 * 号
CACHE:
about.html
video.html
css/css.css
js/common.js
# NETWORK 表示不缓存的文件,离线时是不可用的
NETWORK:
login.asp
# * 可以使用星号来指示所有其他资源/文件都需要因特网连接: # FALLBACK 规定如果无法建立因特网连接,则用 "404.html" 替代 /html5/ 目录中的所有文件:
FALLBACK:
/html5/ /404.html

appcache文件注意事项:

  1. 列表清单支持相对路径和绝对路径。
  2. 资源名称尽量不要使用汉字、空格等特殊文件。

第三步:主页面引入appcache文件,一旦打开该页面的同时会缓存appcache指定的文件。

比如主页面名为:article_lists.html,其引入方式如下:

 <!DOCTYPE html>
<!-- appcache文件路径可以是相对,也可以是绝对路径-->
<html manifest="/manifest/article_lists.appcache">

注意细节:

  1. 执行文件(比如 article_lists.html),虽然不在缓存列表内,但仍然会被缓存。
  2. 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。
  3. 查看资源是否被缓存,可以在浏览器按F12键,在console内查看

  4. 文件引用缓存文件时,一定要区分大小写!
    比如:缓存列表内缓存css/css.css 资源,全是小写状态。则执行时会将该文件下载到本机。
    而离线html文件想要加载该css文件用了大写文件名时会显示出错,是因为离线匹配缓存文件是区分大小写。
    也就是说: css.css 资源是被缓存了,但离线文件引用该缓存资源时未能正确的匹配大小写状态,导致无法正确加载该CSS样式。
  5.  <!DOCTYPE HTML>
    <html manifest="/learn/h5/h5.appcache">
    <head>
    <title>H5 简明教程</title>
    <!-- 由于appcache内缓存的文件名是小写的:css/css.css 而这里引用了大写的Css/css.css导致无法获取该资源的缓存 -->
    <link rel="stylesheet" type="text/css" href="Css/css.css" />

1、 如果要缓存一个html页面,一定同时要缓存该文件所关联的所有资源列表,包括css、js、图片、文件等。

2、强制更新缓存,可以编辑appcache文件,比如修改注释。

H5应用程序缓存浅谈及实际测试的更多相关文章

  1. H5应用程序缓存 - Cache manifest

    一.作用 离线浏览 - 根据文件规则把资源缓存在本地,脱机依然能够访问资源,联网会直接使用缓存在本地的文件.优化加载速度,节约服务器资源. 二.适用场景 正如 manifest 英译的名字:离线应用程 ...

  2. H5 应用程序缓存(离线缓存)

    离线缓存这个功能的实现有以下步骤: 1,以nginx做web服务器为例,在mime.types文件中添加一行:text/cache-manifest     manifest,作用是为了让服务器识别该 ...

  3. AppCache 离线存储 应用程序缓存 API 及注意事项

    使用ApplicationCache接口实现离线缓存 原文:http://www.mb5u.com/HTML5/html5_96464.html 推荐:html5 application cache遇 ...

  4. HTML5应用程序缓存Application Cache

    什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用. A ...

  5. HTML5应用程序缓存Application Cache详解

    什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用. A ...

  6. 神奇的HTML5离线存储(应用程序缓存)

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接前端小尚,谢谢! 前言 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. HTML5引入 ...

  7. Php output buffering缓存及程序缓存

       在php中有时为了控制程序的输出显示顺序,提供了output buffering缓存(php自身缓存机制). 若Ob缓存开启,需要输出的就先存在ob缓存里,再到程序缓存里.若没有开启,则直接进入 ...

  8. HTML 5 学习之应用程序缓存

    什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: 离线浏 ...

  9. 从零开始学 Web 之 HTML5(三)网络监听,全屏,文件读取,地理定位接口,应用程序缓存

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

随机推荐

  1. 在eclipse中配置Tomcat时,出现“Cannot create a server using the selected type”的错误。

    出现原因:Tomcat重新安装,并且安装目录改变了. 解决方案:在“Window->preferences->Server->Runtime Environment”,编辑Tomca ...

  2. requireJS使用教程

    一:为什么要使用requireJS? 很久之前,我们所有的JS文件写到一个js文件里面去进行加载,但是当业务越来越复杂的时候,需要分成多个JS文件进行加载,比如在页面中head内分别引入a.js,b. ...

  3. 【Linux学习笔记】常用命令速记

    创建文件夹:mkdir 文件夹名 删除文件夹 rmdir 文件夹名 进入文件夹 cd 文件夹名 给某个目录所有用户配置读写权限:chmod 777 -R 文件夹名(-R会递归里面所有的子文件夹并给和父 ...

  4. 我想写一个前端开发工具(三):优化!从vue-cli学了几招

    我从过年开始写自己的前端工具 coodev,目前已经写出一个基本的架子,大多数预想的功能都能跑通,还剩一些需要解决的问题也都已经列出来了.本来这一周打算解决对不同后端模板的前后端渲染支持的问题.但是看 ...

  5. GoBelieve UseID及ImID方案

    GoBelieve: imId = (appid + uid) IM 服务器用(appid + uid)imid做用户的唯一标示 imid是IM平台上沟通的凭证 客户端请求联系人列表后,会有对应uid ...

  6. Oracle树形结构数据-相关知识总结

    Oracle树形结构数据--基本知识 1.数据组成 2.基本查询 2.1.查询某节点及该节点下的所有子孙节点 SELECT   *      FROM QIANCODE.TREE_TABLE_BASI ...

  7. Java线程池的创建详解

    本篇文章主要总结了Java创建线程池的三种方式以及线程池参数的详细说明,对线程池感兴趣的同学可以作为参考学习. 1)通过工具类java.util.concurrent.Executors的静态方法来创 ...

  8. 安装 vue-devtools

    1. github下载 vue-devtools: git clone https://github.com/vuejs/vue-devtools 2. node install 安装包 3. vi ...

  9. 壹度DIY_微信小程序组件_小程序插件开发

    开源免费插件,diy特有的页面机制,搭配30+自定义组件,让你的站点每一个页面都可以完全自定义,可无缝对接任意小程序,如有疑问加入qq壹度小程序交流群:302866773:或wx:liu2417301 ...

  10. Python学习 :迭代器&生成器

    列表生成式 列表生成式的操作顺序: 1.先依次来读取元素 for x 2.对元素进行操作 x*x 3.赋予变量 Eg.列表生成式方式一 a = [x*x for x in range(10)] pri ...