基于http协议的app缓存机制

来源:互联网 发布:linux shell 启动程序 编辑:程序博客网 时间:2024/05/17 05:11

在讨论“基于HTTP协议的app缓存机制”这个专题前,先来了解下app客户端现有的缓存机制:

用户首次进入客户端首页时会从服务器获取最新数据,并将数据缓存至本地,如若不重启客户端,将不再向服务器获取最新数据。

这个缓存机制非常简单,发挥了一定的缓存作用,但是存在以下几点问题:

    1.不够灵活,无法有效控制数据更新的时机
    2.不够透明,app开发人员必须熟知这种缓存机制的具体实现细节
    3.不够通用,每个页面/接口需要重复编写冗余的代码,无法在各个项目间进行移植

说到这里,我想我们需要引入一种基于架构的更加强大、更加完善的缓存机制,这个缓存机制是什么样子的呢?
其实很简单,我们每天都在使用,甚至我们离不开它-浏览器,相信细心的你在使用它们时会有如下体验:
    1.重复访问一个页面会打开得更快
    2.有时网络掉线了仍然可以打开页面
    3.作为技术人员,我们有时还碰到一个页面死活不肯更新的情况

浏览器种类很多:chrome、IE、firefox、Safari、operai等等,但无论何种浏览器它们都采用HTTP作为通信协议,
我们的app也不例外。app和浏览器一样在用户和服务器之间充当代理的角色,为用户做了很多隐性的操作,
缓存只是其中一项(本文不试图介绍浏览器缓存机制的实现细节,有兴趣的同学可以查阅http白皮书)
浏览器采取的缓存机制我们完全可以借鉴,那么是否有先驱已经将浏览器的缓存机制搬到app,并形成成熟可用的组件?

幸好,大牛们为开源付出了大量心血,有现成的解决方案,当然这一切还需要大量的测试和验证!
 1.HTTP Response Caching for Java and Android 
     http://blog.csdn.net/parcel8437/article/details/8072316
     https://github.com/candrews/HttpResponseCache
 2.HTTP Response Caching for ios
   https://devcenter.heroku.com/articles/ios-network-caching-http-headers

原创粉丝点击