最近遇到项目优化的问题,由于项目用到的框架,函数库比较多,导致首次需要加载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>
今天就暂时写到这里了