zoukankan      html  css  js  c++  java
  • HTML 5 学习之应用程序缓存

    什么是应用程序缓存(Application Cache)? 
    HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 
    应用程序缓存为应用带来三个优势: 
    离线浏览 - 用户可在应用离线时使用它们 
    速度 - 已缓存资源加载得更快 
    减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 

    浏览器支持 
    所有主流浏览器均支持应用程序缓存,除了 Internet Explorer。 

    Cache Manifest 基础 
    如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性: 
    Java代码  收藏代码
    1. <!DOCTYPE HTML>  
    2. <html manifest="demo.appcache">  
    3. ...  
    4. </html>  

    每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。 
    manifest 文件的建议的文件扩展名是:".appcache"。 
    请注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。 

    Manifest 文件 
    manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。 
    manifest 文件可分为三个部分: 
    CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存 
    NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存 
    FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面) 

    上述资料copy自http://www.w3school.com.cn/html5/html_5_app_cache.asp 
    下面贴一下我自己操作的流程: 
    1、web容器配置。Application Cache的核心是manifest 文件,要加载manifest 文件,就要先让web容易认识这个东东,所以要先配置MIME-type 映射。我用的是tomcat容器,找到conf/web.xml文件,在那一大堆<mime-mapping>后面加上manifest配置
    Java代码  收藏代码
    1. <!--html5 mime-type setting -->  
    2.     <mime-mapping>  
    3.         <extension>manifest</extension>  
    4.         <mime-type>text/cache-manifest</mime-type>  
    5.     </mime-mapping>  
    6. <!--html5 mime-type setting -->  
    ,保存重启,完成第一步。 

    2、编写manifest文件。我的manifest文件为cache/demo.appcache,内容入下: 
    Java代码  收藏代码
    1. CACHE MANIFEST  
    2. 2012-11-01 v1.0.0   
    3. ../image/baidu_sylogo1.gif  
    4.   
    5. NETWORK:  
    6. ../image/cat.gif  
    7.   
    8. FALLBACK:  
    9. 404.html  


    3、html使用manifest文件。 
    Java代码  收藏代码
    1. <!DOCTYPE>  
    2. <html  manifest="../cache/demo.appcache">  
    3.   <head>  
    4.     <title>test4.html</title>  
    5.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
    6.     <meta http-equiv="description" content="this is my page">  
    7.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
    8.   </head>  
    9.   <body>  
    10.     <div>  
    11.         <img alt="aaa" src="../image/baidu_sylogo1.gif" >  
    12.         <img id="msg" alt="bbb" src="" >  
    13.         <script type="text/javascript">  
    14.             var msg=document.getElementById("msg");  
    15.             msg.src='../image/cat.gif';  
    16.         </script>  
    17.     </div>  
    18.   </body>  
    19. </html>  

    baidu_sylogo1.gif为缓存,而cat.gif是直接从服务器读取。 

    4、测试。笔者用chrome测试了一下正常显示,firefox也OK。不过PC上看不出啥来(比较明显的是manifest 文件中的路径配置错误,debug模式会报错,正常的情况下浏览器会提示是否使用xxx网站提供的静态数据),我用我自己的手机测试了一下,效果比较明显(WI-FI坏境下)。刷新页面的速度很快,关闭WI-FI时,重新刷页面,可以看到第一个图片,而第二个图片显示不出来。
     FROM :http://xiaofengyu.iteye.com/blog/1711518
  • 相关阅读:
    inline,inline-block 水平方向无法对齐
    Html语义化标签
    IAP15W4K58S4引脚定义 STC15
    74HC245引脚定义 使用方法
    74HC238引脚定义 使用方法
    HC595驱动数码管
    ICMP重定向 Redirect netwox libpcap netwag
    ARP攻击 winpcap
    打开Visual Studio 2017报错:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application”包
    dos编码格式 cmd编码 dos中文显示
  • 原文地址:https://www.cnblogs.com/NetPig/p/3934471.html
Copyright © 2011-2022 走看看