[发明专利]一种在curl库中实现资源缓存的方法有效
申请号: | 200910109910.2 | 申请日: | 2009-10-30 |
公开(公告)号: | CN101699823A | 公开(公告)日: | 2010-04-28 |
发明(设计)人: | 朱琳 | 申请(专利权)人: | 深圳创维数字技术股份有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08 |
代理公司: | 深圳市康弘知识产权代理有限公司 44247 | 代理人: | 胡朝阳;孙洁敏 |
地址: | 518057 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 curl 实现 资源 缓存 方法 | ||
技术领域
本发明涉及资源缓存技术,尤其涉及一种在curl库中实现资源缓存的方法。
背景技术
瑞典curl组织开发的curl是一个利用URL语法在命令行方式下工作的文件传输工具, 也可以做为第三方软件被应用程序(如浏览器)集成使用。curl支持HTTP POST方法, HTTP PUT方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,IPv6, socks5代理服务器等等,功能十分强大,所以在Linux上被广泛使用。
curl通过HTTP协议在远程服务器上下载资源(如图片资源、.js文件、.css文件、音 视频文件等)的过程(如解析域名、与主机通信、下载数据)是需要一定时间的,尤其是 在网速慢、带宽有限的情况下。如果应用程序(如浏览器)反复多次下载相同资源则需要 重复上述过程,为应用程序(如浏览器)带来过多的时间开销。
在curl库中建立一个内存缓存,将已下载完全的资源放入缓存中,或者将这些资源以 本地临时文件的形式保存起来,避免下次使用时需要通过网络得到资源,则可以大大的节 省时间,很好的解决这个问题。
因此,如何准确的判断curl对一个URL资源的操作已经结束,可以将其内容保存到 缓存或本地临时文件中,成为急待解决的问题。
发明内容
本发明的目的在于提供一种在curl库中实现资源缓存的方法,可以准确的判断curl对 一个URL资源的操作已经结束,进而将其内容保存到缓存或本地临时文件中,为需要调 用curl,但又没有设计自身缓存机制的应用程序提供存服务,缩短程序运行的时间。
为解决本发明的技术问题,本发明公开一种在curl库中实现资源缓存的方法,包括:
Curl入口函数处解析curl本次处理的URL;
判断所述URL是Http模式时,且通过所述URL中的扩展名信息判断不为需要实时更 新的资源时,检查所述URL是否存在于缓存的节点队列中;
如果否,为所述URL创建一个节点,将其插入缓存队列中;
判断在所述curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整, 如果是,不保存数据;如果否,将本次传递的数据顺序的放入节点中保存数据的缓存中。
较优的,还包括:判断所述URL是Http模式还是file模式,当为file模式时,不做缓 存。
较优的,还包括:
判断所述URL存在于缓存的节点队列中时,还判断此节点是否被标记结束状态,如 果是,将其被引用数加一作为以后缓存到达上限时删除资源释放缓存的依据,并直接调用 应用程序注册的回调函数,将所述节点中的数据传送给应用程序;如果否,则执行所述判 断在curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整的步骤。
较优的,所述将本次传递的数据顺序的放入节点中保存数据的缓存之后,所述方法还 包括:
将curl对所述URL对应资源的数据是否下载完全的信息保存到节点中;
将curl对所述URL处理是否结束的信息保存到节点中。
较优的,所述将curl对所述URL处理是否结束的信息保存到节点中之后,所述方法 还包括:
判断缓存中存放资源的总值是否超过上限;
如果是,删除缓存中被引用数最小的、已经标记为结束的资源及其节点,直到缓存中 资源小于等于设定好的极限值,然后执行curl剩余的工作流程;
如果否,继续执行curl剩余的工作流程。
较优的,所述需要实时更新的资源包括html之类网页代码、xml。
与现有技术相比,本发明具有如下有益效果:
本发明公开一种在curl库中实现资源缓存的方法,可以准确的判断curl对一个URL 资源的操作已经结束,进而将其内容保存到缓存或本地临时文件中,为需要调用curl,但 又没有设计自身缓存机制的应用程序提供存服务,缩短程序运行的时间。
附图说明
图1为本发明实施例之在curl库中实现资源缓存的详细流程图。
具体实施方式
如图1所述,为本发明实施例之在curl库中实现资源缓存的详细流程图,该在curl库 中实现资源缓存的方法包括如下步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳创维数字技术股份有限公司,未经深圳创维数字技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910109910.2/2.html,转载请声明来源钻瓜专利网。