zoukankan      html  css  js  c++  java
  • HTML5 manifest 应用程序缓存的简单实践

    离线存储技术

      HTML5提出了两大离线存储技术:localstorage与Application Cache,两者各有应用场景;传统还有离线存储技术为Cookie。

      经过实践我们认为localstorage应该存储一些非关键性ajax数据;

      Application Cache用于存储静态资源;

      而cookie只能保存一小段文本(4096字节);所以不能存储大数据,这是cookie与上述缓存技术的差异之一,而因为HTTP是无状态的,服务器为了区分请求是否来源于同一个服务器,需要一个标识字符串,而这个任务就是cookie完成的,这一段文本每次都会在服务器与浏览器之间传递,以验证用户的权限。

      所以Application Cache的应用场景不一样,所以使用也不一致。

    Application Cache的优势

    1. 离线浏览 - 用户可在应用离线时使用它们
    2. 速度 - 已缓存资源加载得更快
    3. 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源

    实践

      1.在 web 服务器中配置正确的  MIME-type 即 text/cache-manifest

        以Apache为例: 在 .htaccess 文件中写入以此规则:    

    AddType text/cache-manifest appcache

      2.创建manifest 文件 通常是 .appcache 为后缀(与以上apache 的 .htaccess 文件配置相关), 它告知浏览器被缓存的内容(以及不缓存的内容)

        

    CACHE MANIFEST
    # version : 2012-02-21 v1.0.0
    #需缓存的 CACHE: cache.html test.css #不需缓存的 NETWORK: nocache.js FALLBACK: # 访问缓存失败后,备用访问的资源,第一个是访问源,第二个是替换文件
    *.html /offline.html a.jpg/b.jpg

      3. 需启用应用程序缓存,则在文档的<html> 标签中包含 manifest 属性即可

       

    <!DOCTYPE html>
    <html lang="en" manifest="cache.appcache">

      

      配置完成后浏览器将有以下缓存动作

      

    更新缓存

      一旦应用被缓存,它就会保持缓存直到发生下列情况:

      • 用户清空浏览器缓存
      • manifest 文件被修改 (即使只是注释,由此,可通过更改注释中的版本号来较为合理地实现)
      • 由程序来更新应用缓存

      一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使修改了服务器上的文件。为了确保浏览器更新缓存,需要更新 manifest 文件。

      浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。

  • 相关阅读:
    oracle 11.2.0.4 ADG+linux+补丁升级11.2.0.4.181016(28204707)
    审计信息清理及审计表迁移时遇到的坑
    与其他schema下表同名视图实验
    Oracle 11gr2 RAC到单实例的DG搭建(落地备份)
    Oracle数据文件名乱码问题
    Vmware12+centos7:固定IP
    Vmware12+OracleLinux5.4+Oracle 11.2.0.3+ASM
    OracleLinux文件名最后带空格生成了新的文件???
    OGG新增DataPump进程下发(多个进程共用队列文件)
    OGG BIGDATA从版本12.2升级到12.3.2.1.1
  • 原文地址:https://www.cnblogs.com/lishalom/p/HTML.html
Copyright © 2011-2022 走看看