静态资源缓存常用的方式
2015-09-11 17:37
309 查看
最近遇到项目优化的问题,由于项目用到的框架,函数库比较多,导致首次需要加载3.6M的文件,那么问题来了,当网络很差的时候,很多文件就会timeout.然后就挂了。所以就开始用到离线缓存,一些文件静态的函数库开始缓存起来,一些经常更新的文件每次上线加版本号更新。
下面说说离线缓存,长话短说,很简单,只要完成简单的几个步骤
![](http://images2015.cnblogs.com/blog/459080/201509/459080-20150911155816747-709252569.jpg)
1,创建一个后缀名为.appcache的文件(如:list.appcache),里面配置项也很简单,同上
CACHE MANIFEST:这里面把你需要缓存的文件列出来,注意路径哈。
NETWORK:指定只有通过联网才能浏览的文件.一般写通配符 * 号(*代表除了在CACHE中的文件)
FALLBACK: 当上面文件尝试加载失败时,转换成下面列出的备用条目。
2.把list.appcache添加到页面中得HTML中
3.我们可以通过调试器看 或者 chrome://appcache-internals/ 可以访问
![](http://images2015.cnblogs.com/blog/459080/201509/459080-20150911170813684-777097654.jpg)
小结:
离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5 使用ApplicationCache 接口解决了由离线带来的部分难题。前提是你需要访问的web页面至少被在线访问过一次。
使用离线加载有几大优势,首先可以在没有网络的情况下访问缓存的资源,第二,可以加快网页加载速度。
此外, 如果报错,首先检测访问文件地址是否正确(大部分是这个原因导致),还有就是需要服务器支持,比如tomcat需要修改config文件(nginx我试过,是可以识别,不用额外修改)
今天就暂时写到这里了
下面说说离线缓存,长话短说,很简单,只要完成简单的几个步骤
![](http://images2015.cnblogs.com/blog/459080/201509/459080-20150911155816747-709252569.jpg)
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/ 可以访问
![](http://images2015.cnblogs.com/blog/459080/201509/459080-20150911170813684-777097654.jpg)
小结:
离线访问对基于网络的应用而言越来越重要。虽然所有浏览器都有缓存机制,但它们并不可靠,也不一定总能起到预期的作用。HTML5 使用ApplicationCache 接口解决了由离线带来的部分难题。前提是你需要访问的web页面至少被在线访问过一次。
使用离线加载有几大优势,首先可以在没有网络的情况下访问缓存的资源,第二,可以加快网页加载速度。
此外, 如果报错,首先检测访问文件地址是否正确(大部分是这个原因导致),还有就是需要服务器支持,比如tomcat需要修改config文件(nginx我试过,是可以识别,不用额外修改)
<mime-mapping> <extension>manifest</extension> <mime-type>text/cache-manifest</mime-type> </mime-mapping>
今天就暂时写到这里了
相关文章推荐
- AFNetworking请求设置请求头
- 转:Jmeter之使用CSV Data Set Config实现参数化登录
- JavaScript - 知识点总结
- 安卓中按钮文字不显示
- java之int与integer的区别
- iOS开发——生成条形码,二维码
- 数据结构tip
- Win32汇编创建没有标题栏的窗体
- IO系统性能之一:衡量性能的几个指标
- 木头骑士的Linux编程实验室(三)——文件描述符的操作
- jsp导出excel浏览器兼容
- Android:eclipse启动时出现异常Failed to initialize Monitor Thread: Unable to establish loopback connection
- java学习经典书籍_移动开发篇
- IO系统性能之三:在Linux中监视IO性能
- 时间/空间复杂度浅析
- Android Canvas drawText实现中文垂直居中
- Calendar用法随笔
- memcached 基于libevent的事件处理
- this关键字和索引器
- c++中输入与输出流