最近遇到项目优化的问题,由于项目用到的框架,函数库比较多,导致首次需要加载3.6M的文件,那么问题来了,当网络很差的时候,很多文件就会timeout.然后就挂了。所以就开始用到离线缓存,一些文件静态的函数库开始缓存起来,一些经常更新的文件每次上线加版本号更新。

 

下面说说离线缓存,长话短说,很简单,只要完成简单的几个步骤

1,创建一个后缀名为.appcache的文件(如:list.appcache),里面配置项也很简单,同上

    CACHE MANIFEST:这里面把你需要缓存的文件列出来,注意路径哈。

    NETWORK:指定只有通过联网才能浏览的文件.一般写通配符 * 号(*代表除了在CACHE中的文件)

  FALLBACK: 当上面文件尝试加载失败时,转换成下面列出的备用条目。

2.把list.appcache添加到页面中得HTML中

<html lang="zh-cn" manifest="/list.appcache" type="text/cache-manifest">

3.我们可以通过调试器看 或者 chrome://appcache-internals/  可以访问

 

 

小结:

      离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5 使用ApplicationCache 接口解决了由离线带来的部分难题。前提是你需要访问的web页面至少被在线访问过一次。

      使用离线加载有几大优势,首先可以在没有网络的情况下访问缓存的资源,第二,可以加快网页加载速度。

      此外, 如果报错,首先检测访问文件地址是否正确(大部分是这个原因导致),还有就是需要服务器支持,比如tomcat需要修改config文件(nginx我试过,是可以识别,不用额外修改)

<mime-mapping>  
       <extension>manifest</extension>  
       <mime-type>text/cache-manifest</mime-type>  
</mime-mapping>  

  

  今天就暂时写到这里了

    

  

 

posted on 2015-09-11 17:37  startmyways  阅读(5189)  评论(0编辑  收藏  举报