CN101699823A - 一种在curl库中实现资源缓存的方法 - Google Patents

一种在curl库中实现资源缓存的方法 Download PDF

Info

Publication number
CN101699823A
CN101699823A CN200910109910A CN200910109910A CN101699823A CN 101699823 A CN101699823 A CN 101699823A CN 200910109910 A CN200910109910 A CN 200910109910A CN 200910109910 A CN200910109910 A CN 200910109910A CN 101699823 A CN101699823 A CN 101699823A
Authority
CN
China
Prior art keywords
node
curl
resource
url
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910109910A
Other languages
English (en)
Other versions
CN101699823B (zh
Inventor
朱琳
Original Assignee
Shenzhen Skyworth Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Skyworth Digital Technology Co Ltd filed Critical Shenzhen Skyworth Digital Technology Co Ltd
Priority to CN200910109910.2A priority Critical patent/CN101699823B/zh
Publication of CN101699823A publication Critical patent/CN101699823A/zh
Application granted granted Critical
Publication of CN101699823B publication Critical patent/CN101699823B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

一种在curl库中实现资源缓存的方法,包括:curl入口函数处解析curl本次处理的URL;判断URL是Http模式时,且通过URL中的扩展名信息判断不为需要实时更新的资源时,检查URL是否存在于缓存的节点队列中;如果存在并且该节点已经被标记为结束状态则将其被引用加一,直接调用应用程序注册的回调函数将节点中的数据传送给应用程序;如果否,为URL创建一个节点,将其插入缓存队列中;判断在curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整,如果是,不保存数据;如果否,将本次传递的数据顺序的放入节点中保存数据的缓存中。本发明可准确的判断curl对一个URL资源的操作已经结束,进而将其内容保存到缓存或本地临时文件中,缩短程序运行的时间。

Description

一种在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库中实现资源缓存的方法包括如下步骤。
步骤1,Curl入口函数处解析curl本次处理的URL;
步骤2,判断URL的类型;
这部分有两个主要工作,首先判断URL是Http模式还是file模式,file模式不做缓存,因为从本地读取资源数据过程相对简单,执行curl的固有工作流程;Http模式则执行步骤3。
步骤3,通过URL中的扩展名等信息判断是否为需要实时更新的资源(如包括html之类网页代码、xml等),如果是,则不缓存,下面的步骤都按curl的固有工作流程执行;否则执行步骤4。
步骤4,检查所述URL是否存在于缓存的节点队列中,是则执行步骤5;否则执行步骤6。
步骤5,判断此节点是否被标记结束状态,是则将其被引用数加一作为以后缓存到达上限时删除资源释放缓存的依据,并执行步骤16,直接调用应用程序注册的回调函数,将节点中的数据传送给应用程序;否则执行步骤8。
步骤6,为所述URL创建一个节点,并执行步骤7,将其插入缓存队列中,然后执行步骤8。
步骤8,判断在curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整,是则执行步骤9;否则执行步骤10。
步骤9,不保存数据,并转而执行步骤12。
步骤10,将本次传递的数据顺序的放入节点中保存数据的缓存中。执行curl流程到步骤11。
步骤11,将curl对所述URL对应资源的数据是否下载完全的信息保存到节点中。执行curl流程到步骤12。
步骤12,将curl对所述URL处理是否结束的信息保存到节点中,然后执行步骤13。
步骤13,判断缓存中存放资源的总值是否超过上限,是则执行步骤14;否则继续执行curl剩余的工作流程。
步骤14,删除缓存中最不常用的(例如,为被引用数最小)、已经标记为结束的资源及其节点,直到缓存中资源小于等于设定好的极限值,然后执行curl剩余的工作流程。
步骤15,继续执行curl剩余的工作流程。
步骤16,直接调用应用程序注册的回调函数,将节点中的数据传送给应用程序。
因此,通过本发明的在curl库中实现资源缓存的方法,可以准确的判断curl对一个URL资源的操作已经结束,进而将其内容保存到缓存或本地临时文件中,为需要调用curl,但又没有设计自身缓存机制的应用程序提供存服务,缩短程序运行的时间。

Claims (6)

1.一种在curl库中实现资源缓存的方法,其特征在于,包括:
Curl入口函数处解析curl本次处理的URL;
判断所述URL是Http模式时,且通过所述URL中的扩展名信息判断不为需要实时更新的资源时,检查所述URL是否存在于缓存的节点队列中;
如果否,为所述URL创建一个节点,将其插入缓存队列中;
判断在所述curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整,如果是,不保存数据;如果否,将本次传递的数据顺序的放入节点中保存数据的缓存中。
2.如权利要求1所述的方法,其特征在于,还包括:判断所述URL是Http模式还是file模式,当为file模式时,不做缓存。
3.如权利要求1所述的方法,其特征在于,还包括:
判断所述URL存在于缓存的节点队列中时,还判断此节点是否被标记结束状态,如果是,将其被引用数加一作为以后缓存到达上限时删除资源释放缓存的依据,并直接调用应用程序注册的回调函数,将所述节点中的数据传送给应用程序;如果否,则执行所述判断在curl调用应用程序注册的回调函数处,节点中保存的资源数据是否完整的步骤。
4.如权利要求1所述的方法,其特征在于,所述将本次传递的数据顺序的放入节点中保存数据的缓存之后,所述方法还包括:
将curl对所述URL对应资源的数据是否下载完全的信息保存到节点中;
将curl对所述URL处理是否结束的信息保存到节点中。
5.如权利要求4所述的方法,其特征在于,所述将curl对所述URL处理是否结束的信息保存到节点中之后,所述方法还包括:
判断缓存中存放资源的总值是否超过上限;
如果是,删除缓存中被引用数最小的、已经标记为结束的资源及其节点,直到缓存中资源小于等于设定好的极限值,然后执行curl剩余的工作流程;
如果否,继续执行curl剩余的工作流程。
6.如权利要求1所述的方法,其特征在于,所述需要实时更新的资源包括html之类网页代码、xml。
CN200910109910.2A 2009-10-30 2009-10-30 一种在curl库中实现资源缓存的方法 Expired - Fee Related CN101699823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910109910.2A CN101699823B (zh) 2009-10-30 2009-10-30 一种在curl库中实现资源缓存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910109910.2A CN101699823B (zh) 2009-10-30 2009-10-30 一种在curl库中实现资源缓存的方法

Publications (2)

Publication Number Publication Date
CN101699823A true CN101699823A (zh) 2010-04-28
CN101699823B CN101699823B (zh) 2014-04-02

Family

ID=42148268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910109910.2A Expired - Fee Related CN101699823B (zh) 2009-10-30 2009-10-30 一种在curl库中实现资源缓存的方法

Country Status (1)

Country Link
CN (1) CN101699823B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102497419A (zh) * 2011-12-09 2012-06-13 电子科技大学 一种面向大规模请求的esb任务调度方法及调度系统
CN104376097A (zh) * 2014-11-25 2015-02-25 同程网络科技股份有限公司 基于Windows服务程序的主动式缓存方法
CN105227514A (zh) * 2014-05-27 2016-01-06 北大方正集团有限公司 基于浏览器的文件传输处理方法和浏览器
CN105654298A (zh) * 2015-12-30 2016-06-08 深圳市瑞铭无限科技有限公司 基于curl的支付回调方法及系统
CN106792196A (zh) * 2016-12-26 2017-05-31 深圳Tcl新技术有限公司 电视机主界面显示方法和装置
CN111416863A (zh) * 2020-03-20 2020-07-14 上海圣剑网络科技股份有限公司 基于客户端的多元化下载管理方法、终端及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065576A1 (en) * 2001-10-02 2003-04-03 International Business Machines Corporation Transmitting a file to a customer possessing a hand held computer by a point of sale terminal
CN1946026A (zh) * 2006-10-20 2007-04-11 清华大学 基于移动存储设备的互联网络数据主动获取方法
CN101499071A (zh) * 2008-01-30 2009-08-05 国际商业机器公司 创建和使用用户定制的统一资源定位符的设备和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030065576A1 (en) * 2001-10-02 2003-04-03 International Business Machines Corporation Transmitting a file to a customer possessing a hand held computer by a point of sale terminal
CN1946026A (zh) * 2006-10-20 2007-04-11 清华大学 基于移动存储设备的互联网络数据主动获取方法
CN101499071A (zh) * 2008-01-30 2009-08-05 国际商业机器公司 创建和使用用户定制的统一资源定位符的设备和方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102497419A (zh) * 2011-12-09 2012-06-13 电子科技大学 一种面向大规模请求的esb任务调度方法及调度系统
CN102497419B (zh) * 2011-12-09 2014-10-15 电子科技大学 一种面向大规模请求的esb任务调度方法及调度系统
CN105227514A (zh) * 2014-05-27 2016-01-06 北大方正集团有限公司 基于浏览器的文件传输处理方法和浏览器
CN104376097A (zh) * 2014-11-25 2015-02-25 同程网络科技股份有限公司 基于Windows服务程序的主动式缓存方法
CN105654298A (zh) * 2015-12-30 2016-06-08 深圳市瑞铭无限科技有限公司 基于curl的支付回调方法及系统
CN106792196A (zh) * 2016-12-26 2017-05-31 深圳Tcl新技术有限公司 电视机主界面显示方法和装置
CN111416863A (zh) * 2020-03-20 2020-07-14 上海圣剑网络科技股份有限公司 基于客户端的多元化下载管理方法、终端及介质

Also Published As

Publication number Publication date
CN101699823B (zh) 2014-04-02

Similar Documents

Publication Publication Date Title
US20120066586A1 (en) Systems and methods for accelerating web page loading
CN104965848B (zh) 一种前端资源加载方法及装置
CN101699823B (zh) 一种在curl库中实现资源缓存的方法
CN104219316A (zh) 一种分布式系统中的调用请求处理方法及装置
CN101287013B (zh) 一种更新Web页面的方法和Web代理设备
CN102904959B (zh) 网络加速方法和网关
CN103686684A (zh) 离线缓存的方法及装置
CN108804514A (zh) 一种网页加载方法、服务器和网页加载系统
CN106648627B (zh) 将直播应用软件移植到火狐浏览器的方法及装置
CN102687116A (zh) 用于异步请求的管理信道
CN104038510A (zh) iOS系统透明代理的实现方法及系统
CN104378399A (zh) 一种数据推送方法、平台服务器、客户端以及系统
CN104967644A (zh) 消息推送方法、装置及系统
CN107305528B (zh) 应用测试方法和装置
CN103401926A (zh) 一种提高网络资源访问速度的方法及装置
WO2008113917A3 (fr) Procede permettant de simuler le fonctionnement d'un dispositif ayant une architecture et un processeur determines a l'aide d'un autre dispositif connecte a un reseau informatique
CN105677688B (zh) 页面数据加载方法和系统
CN108600378B (zh) 一种文件下载方法、装置、终端和存储介质
CN104615597A (zh) 浏览器中清除缓存文件的方法、装置和系统
US10313472B2 (en) Enabling efficient pre-loading of data for a network client
CN102156697A (zh) 一种通过微件实现网页应用的方法及终端设备
CN102904935B (zh) 基于家庭网关的下载方法、设备和系统
CN104796929A (zh) 网络调试方法及装置
EP2003852A1 (en) Method for improving output of data from a remote gateway at a mobile device and download management unit
CN103793459B (zh) 一种网页打开方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: SHENZHEN SKYWORTH DIGITAL TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SKY-WORTH DIGITAL TECHNOLOGY CO., LTD.;SHENZHEN CITY

CP01 Change in the name or title of a patent holder

Address after: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road SKYWORTH building A14

Patentee after: Shenzhen Skyworth Digital Technology Co., Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road SKYWORTH building A14

Patentee before: Shenzhen Skyworth Digital Technology Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140402

Termination date: 20201030