CN103617052B - 应用程序的缓存处理方法和装置 - Google Patents

应用程序的缓存处理方法和装置 Download PDF

Info

Publication number
CN103617052B
CN103617052B CN201310566733.7A CN201310566733A CN103617052B CN 103617052 B CN103617052 B CN 103617052B CN 201310566733 A CN201310566733 A CN 201310566733A CN 103617052 B CN103617052 B CN 103617052B
Authority
CN
China
Prior art keywords
xap
compressed package
address
modification time
application program
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.)
Active
Application number
CN201310566733.7A
Other languages
English (en)
Other versions
CN103617052A (zh
Inventor
吴充
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201310566733.7A priority Critical patent/CN103617052B/zh
Publication of CN103617052A publication Critical patent/CN103617052A/zh
Application granted granted Critical
Publication of CN103617052B publication Critical patent/CN103617052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种应用程序的缓存处理方法和装置。其中,应用程序的缓存处理方法包括:当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址,其中,当前地址中包含有最新修改时间参数;获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数;判断当前地址与历史地址是否一致;如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包;以及如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中。通过本发明,达到了使用应用程序的缓存时依然能够使用最新的应用程序效果。

Description

应用程序的缓存处理方法和装置
技术领域
本发明涉及互联网领域,具体而言,涉及一种应用程序的缓存处理方法和装置。
背景技术
Silverlight程序在发布时,会产生一个主Xap压缩包和多个被Xap压缩包关联的Zip压缩包。使用Silverlight程序时,会先从服务器获取Xap压缩包,并通过Xap包内置的配置文件下载相关的Zip压缩包。在一般的浏览器客户端中都存在一种缓存机制,用户在使用Silverlight程序时,会由浏览器判断是否存在及使用之前的缓存。可能浏览器会直接使用本地的缓存,而不是重新从服务器下载。通过在服务器端进行特殊的配置,可以让浏览器不使用缓存,每次都从服务器重新下载。
使用缓存的问题在于,如果更新了Silverlight应用程序,而用户在本地使用了缓存,就无法使用最新版的应用程序。而且Silverlight的Xap压缩包和Zip压缩包是分别缓存的,可能出现重新下载Xap压缩包而使用Zip压缩包的缓存,或者使用Xap压缩包的缓存而重新下载Zip压缩包的情况,这可能导致Silverlight的Zip压缩包和Xap压缩包版本不一致,导致程序运行异常。而不使用缓存的问题在于,每次都需要重新下载所有压缩包,浪费了带宽和效率。
针对相关技术中在使用应用程序的缓存时无法使用最新的应用程序的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种应用程序的缓存处理方法和装置,以解决相关技术中在使用应用程序的缓存时无法使用最新的应用程序问题。
为了实现上述目的,根据本发明的一个方面,提供了一种应用程序的缓存处理方法。该应用程序的缓存处理方法包括:当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址,其中,当前地址中包含有最新修改时间参数;获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数;判断当前地址与历史地址是否一致,其中,通过判断最新修改时间参数对应的时间与历史修改时间参数对应的时间是否一致以判断当前地址与历史地址是否一致,其中,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,则确定当前地址与历史地址一致,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,则确定当前地址与历史地址不一致;如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包;以及如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中。
进一步地,当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址包括:判断Xap压缩包承载的页面是否加载Xap压缩包;如果判断出Xap压缩包承载的页面加载Xap压缩包,则动态获取Xap压缩包的最新修改时间;以及将最新修改时间添加到Xap压缩包的地址中作为修改时间参数。
进一步地,缓存处理方法还包括:判断Xap压缩包是否有更新;如果判断出Xap压缩包有更新,则解压Xap压缩包;从解压的Xap压缩包中读取Xap压缩包中的配置文件里记录的引用Zip压缩包的地址;检测读取的Zip压缩包的最新修改时间;以及将最新修改时间记录到配置文件中作为修改时间参数。
进一步地,在将最新修改时间记录到配置文件中作为修改时间参数之后,缓存处理方法还包括:保存修改后的配置文件;以及基于修改后的配置文件重新压缩Xap压缩包。
进一步地,应用程序为Silverlight应用程序。
为了实现上述目的,根据本发明的另一方面,提供了一种应用程序的缓存处理装置。该应用程序的缓存处理装置包括:第一获取单元,用于当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址,其中,当前地址中包含有最新修改时间参数;第二获取单元,用于获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数;第一判断单元,用于判断当前地址与历史地址是否一致,其中,通过判断最新修改时间参数对应的时间与历史修改时间参数对应的时间是否一致以判断当前地址与历史地址是否一致,其中,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,则确定当前地址与历史地址一致,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,则确定当前地址与历史地址不一致;调用单元,用于如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包;以及下载单元,用于如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中。
进一步地,第一获取单元包括:判断模块,用于判断Xap压缩包承载的页面是否加载Xap压缩包;获取模块,用于如果判断出Xap压缩包承载的页面加载Xap压缩包,则动态获取Xap压缩包的最新修改时间;以及添加模块,用于将最新修改时间添加到Xap压缩包的地址中作为修改时间参数。
进一步地,缓存处理装置还包括:第二判断单元,用于判断Xap压缩包是否有更新;解压单元,用于如果判断出Xap压缩包有更新,则解压Xap压缩包;读取单元,用于从解压的Xap压缩包中读取Xap压缩包中的配置文件里记录的引用Zip压缩包的地址;检测单元,用于检测读取的Zip压缩包的最新修改时间;以及记录单元,用于将最新修改时间记录到配置文件中作为修改时间参数。
进一步地,缓存处理装置还包括:存储单元,用于在将最新修改时间记录到配置文件中作为修改时间参数之后,保存修改后的配置文件;以及压缩单元,用于基于修改后的配置文件重新压缩Xap压缩包。
进一步地,应用程序为Silverlight应用程序。
通过本发明,采用应用程序的缓存处理方法包括:当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址,其中,当前地址中包含有最新修改时间参数;获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数;判断当前地址与历史地址是否一致,其中,通过判断最新修改时间参数对应的时间与历史修改时间参数对应的时间是否一致以判断当前地址与历史地址是否一致,其中,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,则确定当前地址与历史地址一致,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,则确定当前地址与历史地址不一致;如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包;以及如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中,解决了相关技术中在使用应用程序的缓存时无法使用最新的应用程序的问题,进而达到了使用应用程序的缓存时依然能够使用最新的应用程序效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明第一实施例的应用程序的缓存处理装置的结构示意图;
图2是根据本发明第二实施例的应用程序的缓存处理装置的结构示意图;
图3是根据本发明第一实施例的应用程序的缓存处理方法的流程图;以及
图4是根据本发明第二实施例的应用程序的缓存处理方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种应用程序的缓存处理装置,该装置可以通过计算机设备实现其功能。
图1是根据本发明第一实施例的应用程序的缓存处理装置的结构示意图。如图1所示,该应用程序的缓存处理装置包括:第一获取单元10、第二获取单元20、第一判断单元30、调用单元40和下载单元50。
第一获取单元10用于当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址,其中,当前地址中包含有最新修改时间参数。
在应用程序需要更新的时候,访问应用程序的Xap压缩包,从而可以从服务器上获取最新的Xap压缩包的当前地址,该当前地址可以是在有Xap压缩包实际的地址上增加Xap压缩包最新修改时间参数所形成的地址,从而使得该当前地址中包含有最新修改时间参数,其中,最新修改时间参数可以是对应着Xap压缩包最新修改的时间参数。例如,Xap压缩包的实际地址是:http://localhost/test.xap,最新修改时间是2013年8月1日,则修改后的地址可以是:http://localhost/test.xap?ignore=20130801。通过获取Xap压缩包的当前地址可以根据该当前地址获取Xap压缩包,同时,也能够知道当前地址对应的Xap压缩包的更新时间,从而便于判断该Xap压缩包相对于本地缓存中的Xap压缩包是否有过修改或者更新。
第二获取单元20用于获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数。
在本地缓存中获取Xap压缩包的历史地址,本地缓存可以是本地浏览器的缓存,其中历史地址可以是上一次下载Xap压缩包的地址,可以是最近一次下载到缓存中的Xap压缩包的地址。历史地址中包含有的历史修改时间参数可以上一次Xap压缩包进行修改或者更新后的时间参数,从该时间参数中可以获取上一次Xap压缩包进行修改或者更新的时间。其中,历史修改参数可以是在上一次下载到缓存中的Xap压缩包对应的地址上添加的上一次Xap压缩包进行修改或者更新后的时间参数。通过获取缓存中Xap压缩包的历史地址可以得到缓存中的Xap压缩包的下载的时间,以便于判断缓存中的Xap压缩包是否为最新的Xap压缩包。
第一判断单元30用于判断当前地址与历史地址是否一致,其中,通过判断最新修改时间参数对应的时间与历史修改时间参数对应的时间是否一致以判断当前地址与历史地址是否一致,其中,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,则确定当前地址与历史地址一致,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,则确定当前地址与历史地址不一致。
在获取Xap压缩包的当前地址和缓存中Xap压缩包的历史地址之后,可以通过判断当前地址与历史地址是否一致来确定缓存中Xap压缩包与服务器上的最新的Xap压缩包为相同的Xap压缩包。由于当前地址和历史地址分别带有最新修改时间参数和历史修改时间参数,通过判断最新修改时间参数对应的时间和历史修改时间参数对应的时间就可以判断缓存中Xap压缩包与服务器上的最新的Xap压缩包是否为相同的Xap压缩包。
调用单元40用于如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包。
如果当前地址与历史地址一致,也即是最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,那么缓存中Xap压缩包与服务器上的最新的Xap压缩包为相同的Xap压缩包,因此可以直接使用缓存中的Xap压缩包来更新应用程序。
下载单元50用于如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中。
如果当前地址与历史地址不一致,也即是最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,那么缓存中Xap压缩包与服务器上的最新的Xap压缩包为不同的Xap压缩包,即,在上一次下载Xap压缩包之后,服务器上又修改了Xap压缩包,因此重新下载Xap压缩包至缓存中以实现对应用程序的更新。
根据本发明实施例,通过获取Xap压缩包的当前地址和缓存中的Xap压缩包的历史地址,将Xap压缩包的地址与Xap压缩包的更新时间关联起来,判断当前地址中的最新修改时间参数对应的时间和历史地址中的历史修改时间参数对应的时间,从而判断缓存中Xap压缩包是否为最新的Xap压缩包,当缓存中Xap压缩包为最新的Xap压缩包时,则直接使用该缓存中Xap压缩包;当缓存中Xap压缩包不是最新的Xap压缩包时,则下载最新的Xap压缩包到缓存中,使用缓存中的最新的Xap压缩包更新应用程序,解决了在使用应用程序的缓存时无法使用最新的应用程序的问题,进而达到了使用应用程序的缓存时依然能够使用最新的应用程序效果。
图2是根据本发明第二实施例的应用程序的缓存处理装置的结构示意图。该实施例的应用程序的缓存处理装置可以作为上述实施例的应用程序的缓存处理装置一种优选实施方式。如图2所示,该应用程序的缓存处理装置包括:第一获取单元10、第二获取单元20、第一判断单元30、调用单元40和下载单元50,其中,第一获取单元10包括判断模块101、获取模块102和添加模块103。第二获取单元20、第一判断单元30、调用单元40和下载单元50与图1所示的实施例的第二获取单元20、第一判断单元30、调用单元40和下载单元50功能相同,这里不做赘述。
判断模块101用于判断Xap压缩包承载的页面是否加载Xap压缩包。
当应用程序的Xap压缩包被访问时,都需要检测并判断Xap压缩包承载页面是否加载了Xap压缩包,以便于在Xap压缩包承载页面加载Xap压缩包时获取Xap压缩包的最新修改的时间。
获取模块102用于如果判断出Xap压缩包承载的页面加载Xap压缩包,则动态获取Xap压缩包的最新修改时间。
最新修改时间为最近一次修改的时间,经过判断Xap压缩包承载的页面是否加载Xap压缩包之后,在每次确认Xap压缩包承载的页面加载Xap压缩包时,动态的获取Xap压缩包的最新修改时间,以便于将该最新修改时间添加到Xap压缩包的地址中。
添加模块103,用于将最新修改时间添加到Xap压缩包的地址中作为修改时间参数。
在获取到Xap压缩包的最新修改时间之后,将最新修改时间添加到Xap压缩包的实际地址中,可以是将最新修改时间附在Xap压缩包的实际地址之后,例如,Xap压缩包的实际地址是:http://localhost/test.xap,最新修改时间是2013年8月1日,则修改后的地址可以是:http://localhost/test.xap?ignore=20130801。将添加到Xap压缩包的实际地址中的最新修改时间作为最新修改时间参数,因此,添加最新修改时间后的Xap压缩包的地址即为Xap压缩包的当前地址。
优选地,本发明实施例的应用程序的缓存处理装置还包括:第二判断单元、读取单元、检测单元和记录单元。
第二判断单元用于判断Xap压缩包是否有更新。
判断Xap压缩包是否有更新可以是判断服务器上的Xap压缩包相对于本地缓存中的Xap压缩包是否有更新。当Xap压缩包有更新时,可以下载最新的Xap压缩包,当Xap压缩包有更新无更新时,则可以直接使用缓存中的Xap压缩包。
解压单元用于如果判断出Xap压缩包有更新,则解压Xap压缩包。
如果判断出Xap压缩包有更新,在每次Xap压缩包更新时,解压Xap压缩包,可以是自动解压Xap压缩包。由于Xap压缩包内置的配置文件中记录有该Xap压缩包相关的Zip压缩包的地址,因此对Xap压缩包进行解压,以便于读取Zip压缩包的地址。
读取单元用于从解压的Xap压缩包中读取Xap压缩包中的配置文件里记录的引用Zip压缩包的地址。
在解压Xap压缩包之后,读取Xap压缩包内置的配置文件中记录有该Xap压缩包引用的Zip压缩包的地址,该地址为Zip压缩包的当前地址,Zip压缩包的当前地址与Xap压缩包的当前地址具有类似的作用,即,Zip压缩包的当前地址中包含有Zip压缩包的最新修改时间参数。其中,Zip压缩包的最新修改时间参数与Xap压缩包的最新修改时间参数功能相同,Zip压缩包的当前地址与Xap压缩包的当前地址的设置方式也相同。
检测单元用于检测读取的Zip压缩包的最新修改时间。
读取的Zip压缩包的最新修改时间可以是读取记录的引用Zip压缩包的地址中Zip压缩包的最新修改时间参数对应的时间。逐一检测Xap压缩包引用的各Zip压缩包的最新修改时间,以便于对Xap压缩包的配置文件中的Zip压缩包的地址进行更改。
记录单元用于将最新修改时间记录到配置文件中作为修改时间参数。
将Zip压缩包的最新修改时间记录到配置文件中作为Zip压缩包的最新修改时间参数。
根据本发明实施例,自动检测并修改Xap压缩包中记录Zip压缩包地址的配置文件,使得Xap压缩包与其引用的Zip压缩包保持一致,避免应用程序的Zip压缩包和Xap压缩包版本不一致,导致程序运行异常的问题。
优选地,应用程序的缓存处理装置还包括存储单元和压缩单元。
存储单元用于在将最新修改时间记录到配置文件中作为修改时间参数之后,保存修改后的配置文件。
将Zip压缩包的最新修改时间记录到配置文件中作为Zip压缩包的最新修改时间参数之后,即完成了对Xap压缩包的配置文件的修改,在修改好该配置文件之后,对修改后的配置文件进行存储。
压缩单元用于基于修改后的配置文件重新压缩Xap压缩包。
对配置文件修改并存储后,重新压缩修改后的Xap压缩包形成新的Xap压缩包,从而可以用于应用程序的更新。
优选地,在对Xap压缩包进行相应地处理之后,还可以对Zip压缩包的修改或更新情况进行判断,其对应的处理方式同本发明第一实施例的应用程序的缓存处理方法的Xap压缩包的处理方式相同,这里不做赘述。基于Xap压缩包的处理之后,判断出是使用缓存中的Zip压缩包或者时重新下载新的Zip压缩包,以便于使得Xap压缩包与其配置文件中引用的Zip压缩包保持一致,从而避免应用程序的Zip压缩包和Xap压缩包版本不一致,导致程序运行异常的问题。
优选地,本发明实施例的应用程序为Silverlight应用程序。
本发明实施例还提供了一种应用程序的缓存处理方法。该方法可以运行在计算机设备上。需要说明的是,本发明实施例的应用程序的缓存处理方法可以通过本发明实施例所提供的应用程序的缓存处理装置来执行,本发明实施例的应用程序的缓存处理装置也可以用于执行本发明实施例所提供的应用程序的缓存处理方法。
图3是根据本发明第一实施例的应用程序的缓存处理方法的流程图。如图3所示,该应用程序的缓存处理方法包括以下步骤:
步骤S101,当应用程序的Xap压缩包被访问时,获取Xap压缩包的当前地址,其中,当前地址中包含有最新修改时间参数。
在应用程序需要更新的时候,访问应用程序的Xap压缩包,从而可以从服务器上获取最新的Xap压缩包的当前地址,该当前地址可以是在有Xap压缩包实际的地址上增加Xap压缩包最新修改时间参数所形成的地址,从而使得该当前地址中包含有最新修改时间参数,其中,最新修改时间参数可以是对应着Xap压缩包最新修改的时间参数。例如,Xap压缩包的实际地址是:http://localhost/test.xap,最新修改时间是2013年8月1日,则修改后的地址可以是:http://localhost/test.xap?ignore=20130801。通过获取Xap压缩包的当前地址可以根据该当前地址获取Xap压缩包,同时,也能够知道当前地址对应的Xap压缩包的更新时间,从而便于判断该Xap压缩包相对于本地缓存中的Xap压缩包是否有过修改或者更新。
步骤S102,获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数。
在本地缓存中获取Xap压缩包的历史地址,本地缓存可以是本地浏览器的缓存,其中历史地址可以是上一次下载Xap压缩包的地址,可以是最近一次下载到缓存中的Xap压缩包的地址。历史地址中包含有的历史修改时间参数可以上一次Xap压缩包进行修改或者更新后的时间参数,从该时间参数中可以获取上一次Xap压缩包进行修改或者更新的时间。其中,历史修改参数可以是在上一次下载到缓存中的Xap压缩包对应的地址上添加的上一次Xap压缩包进行修改或者更新后的时间参数。通过获取缓存中Xap压缩包的历史地址可以得到缓存中的Xap压缩包的下载的时间,以便于判断缓存中的Xap压缩包是否为最新的Xap压缩包。
步骤S103,判断当前地址与历史地址是否一致,其中,通过判断最新修改时间参数对应的时间与历史修改时间参数对应的时间是否一致以判断当前地址与历史地址是否一致,其中,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,则确定当前地址与历史地址一致,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,则确定当前地址与历史地址不一致。
在获取Xap压缩包的当前地址和缓存中Xap压缩包的历史地址之后,可以通过判断当前地址与历史地址是否一致来确定缓存中Xap压缩包与服务器上的最新的Xap压缩包为相同的Xap压缩包。由于当前地址和历史地址分别带有最新修改时间参数和历史修改时间参数,通过判断最新修改时间参数对应的时间和历史修改时间参数对应的时间就可以判断缓存中Xap压缩包与服务器上的最新的Xap压缩包是否为相同的Xap压缩包。
步骤S104,如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包。
如果当前地址与历史地址一致,也即是最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,那么缓存中Xap压缩包与服务器上的最新的Xap压缩包为相同的Xap压缩包,因此可以直接使用缓存中的Xap压缩包来更新应用程序。
步骤S105,如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中。
如果当前地址与历史地址不一致,也即是最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,那么缓存中Xap压缩包与服务器上的最新的Xap压缩包为不同的Xap压缩包,即,在上一次下载Xap压缩包之后,服务器上又修改了Xap压缩包,因此重新下载Xap压缩包至缓存中以实现对应用程序的更新。
根据本发明实施例,通过获取Xap压缩包的当前地址和缓存中的Xap压缩包的历史地址,将Xap压缩包的地址与Xap压缩包的更新时间关联起来,判断当前地址中的最新修改时间参数对应的时间和历史地址中的历史修改时间参数对应的时间,从而判断缓存中Xap压缩包是否为最新的Xap压缩包,当缓存中Xap压缩包为最新的Xap压缩包时,则直接使用该缓存中Xap压缩包;当缓存中Xap压缩包不是最新的Xap压缩包时,则下载最新的Xap压缩包到缓存中,使用缓存中的最新的Xap压缩包更新应用程序,解决了在使用应用程序的缓存时无法使用最新的应用程序的问题,进而达到了使用应用程序的缓存时依然能够使用最新的应用程序效果。
图4是根据本发明第二实施例的应用程序的缓存处理方法的流程图。该实施例的应用程序的缓存处理方法可以作为上述实施例的应用程序的缓存处理方法的一种优选实施方式。如图4所示,该应用程序的缓存处理方法包括以下步骤:
步骤S201,判断Xap压缩包承载的页面是否加载Xap压缩包。
当应用程序的Xap压缩包被访问时,都需要检测并判断Xap压缩包承载页面是否加载了Xap压缩包,以便于在Xap压缩包承载页面加载Xap压缩包时获取Xap压缩包的最新修改的时间。
步骤S202,如果判断出Xap压缩包承载的页面加载Xap压缩包,则动态获取Xap压缩包的最新修改时间。
最新修改时间为最近一次修改的时间,经过判断Xap压缩包承载的页面是否加载Xap压缩包之后,在每次确认Xap压缩包承载的页面加载Xap压缩包时,动态的获取Xap压缩包的最新修改时间,以便于将该最新修改时间添加到Xap压缩包的地址中。
步骤S203,将最新修改时间添加到Xap压缩包的地址中作为修改时间参数。
在获取到Xap压缩包的最新修改时间之后,将最新修改时间添加到Xap压缩包的实际地址中,可以是将最新修改时间附在Xap压缩包的实际地址之后,例如,Xap压缩包的实际地址是:http://localhost/test.xap,最新修改时间是2013年8月1日,则修改后的地址可以是:http://localhost/test.xap?ignore=20130801。将添加到Xap压缩包的实际地址中的最新修改时间作为最新修改时间参数,因此,添加最新修改时间后的Xap压缩包的地址即为Xap压缩包的当前地址。
步骤S204,获取缓存中Xap压缩包的历史地址,其中,历史地址中包含有历史修改时间参数。
在本地缓存中获取Xap压缩包的历史地址,本地缓存可以是本地浏览器的缓存,其中历史地址可以是上一次下载Xap压缩包的地址,可以是最近一次下载到缓存中的Xap压缩包的地址。历史地址中包含有的历史修改时间参数可以上一次Xap压缩包进行修改或者更新后的时间参数,从该时间参数中可以获取上一次Xap压缩包进行修改或者更新的时间。其中,历史修改参数可以是在上一次下载到缓存中的Xap压缩包对应的地址上添加的上一次Xap压缩包进行修改或者更新后的时间参数。通过获取缓存中Xap压缩包的历史地址可以得到缓存中的Xap压缩包的下载的时间,以便于判断缓存中的Xap压缩包是否为最新的Xap压缩包。
步骤S205,判断当前地址与历史地址是否一致,其中,通过判断最新修改时间参数对应的时间与历史修改时间参数对应的时间是否一致以判断当前地址与历史地址是否一致,其中,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,则确定当前地址与历史地址一致,如果判断出最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,则确定当前地址与历史地址不一致。
在获取Xap压缩包的当前地址与和缓存中Xap压缩包的历史地址之后,可以通过判断当前地址与历史地址是否一致来确定缓存中Xap压缩包与服务器上的最新的Xap压缩包为相同的Xap压缩包。由于当前地址和历史地址分别带有最新修改时间参数和历史修改时间参数,通过判断最新修改时间参数对应的时间和历史修改时间参数对应的时间就可以判断缓存中Xap压缩包与服务器上的最新的Xap压缩包是否为相同的Xap压缩包。
步骤S206,如果判断出当前地址与历史地址一致,则直接使用缓存中的Xap压缩包。
如果当前地址与历史地址一致,也即是最新修改时间参数对应的时间与历史修改时间参数对应的时间一致,那么缓存中Xap压缩包与服务器上的最新的Xap压缩包为相同的Xap压缩包,因此可以直接使用缓存中的Xap压缩包来更新应用程序。
步骤S207,如果判断出当前地址与历史地址不一致,则重新下载Xap压缩包至缓存中。
如果当前地址与历史地址不一致,也即是最新修改时间参数对应的时间与历史修改时间参数对应的时间不一致,那么缓存中Xap压缩包与服务器上的最新的Xap压缩包为不同的Xap压缩包,即,在上一次下载Xap压缩包之后,服务器上又修改了Xap压缩包,因此重新下载Xap压缩包至缓存中以实现对应用程序的更新。
根据本发明实施例,通过在Xap压缩包承载的页面加载Xap压缩包时,动态获取Xap压缩包的最新修改时间并将该最新修改时间添加到Xap压缩包的地址中作为参数,可以在每次下载Xap压缩包之后,将其对应的当前地址存储在缓存中,作为下次修改的历史地址,从而保证使得每次应用程序更新时,都可以判断缓存中Xap压缩包是否为最新的Xap压缩包。
优选地,本发明实施例的应用程序缓存处理方法还包括以下步骤:
步骤S301,判断Xap压缩包是否有更新。
判断Xap压缩包是否有更新可以是判断服务器上的Xap压缩包相对于本地缓存中的Xap压缩包是否有更新。当Xap压缩包有更新时,可以下载最新的Xap压缩包,当Xap压缩包有更新无更新时,则可以直接使用缓存中的Xap压缩包。
步骤S302,如果判断出Xap压缩包是否有更新,则解压Xap压缩包。
如果判断出Xap压缩包有更新,在每次Xap压缩包更新时,解压Xap压缩包,可以是自动解压Xap压缩包。由于Xap压缩包内置的配置文件中记录有该Xap压缩包相关的Zip压缩包的地址,因此对Xap压缩包进行解压,以便于读取Zip压缩包的地址。
步骤S303,从解压的Xap压缩包中读取Xap压缩包中的配置文件里记录的引用Zip压缩包的地址。
在解压Xap压缩包之后,读取Xap压缩包内置的配置文件中记录有该Xap压缩包引用的Zip压缩包的地址,该地址为Zip压缩包的当前地址,Zip压缩包的当前地址与Xap压缩包的当前地址具有类似的作用,即,Zip压缩包的当前地址中包含有Zip压缩包的最新修改时间参数。其中,Zip压缩包的最新修改时间参数与Xap压缩包的最新修改时间参数功能相同,Zip压缩包的当前地址与Xap压缩包的当前地址的设置方式也相同。
步骤S304,检测读取的Zip压缩包的最新修改时间。
读取的Zip压缩包的最新修改时间可以是读取记录的引用Zip压缩包的地址中Zip压缩包的最新修改时间参数对应的时间。逐一检测Xap压缩包引用的各Zip压缩包的最新修改时间,以便于对Xap压缩包的配置文件中的Zip压缩包的地址进行更改。
步骤S305,将最新修改时间记录到配置文件中作为修改时间参数。
将Zip压缩包的最新修改时间记录到配置文件中作为Zip压缩包的最新修改时间参数。
根据本发明实施例,自动检测并修改Xap压缩包中记录Zip压缩包地址的配置文件,使得Xap压缩包与其引用的Zip压缩包保持一致,避免应用程序的Zip压缩包和Xap压缩包版本不一致,导致程序运行异常的问题。
优选地,在步骤S305之后,应用程序的缓存处理方法还包括步骤S306和步骤S307。
步骤S306,保存修改后的配置文件。
将Zip压缩包的最新修改时间记录到配置文件中作为Zip压缩包的最新修改时间参数之后,即完成了对Xap压缩包的配置文件的修改,在修改好该配置文件之后,对修改后的配置文件进行存储。
步骤S307,基于修改后的配置文件重新压缩Xap压缩包。
对配置文件修改并存储后,重新压缩修改后的Xap压缩包形成新的Xap压缩包,从而可以用于应用程序的更新。
优选地,在对Xap压缩包进行相应地处理之后,还可以对Zip压缩包的修改或更新情况进行判断,其对应的处理方式同本发明第一实施例的应用程序的缓存处理方法的Xap压缩包的处理方式相同,这里不做赘述。基于Xap压缩包的处理之后,判断出是使用缓存中的Zip压缩包或者时重新下载新的Zip压缩包,以便于使得Xap压缩包与其配置文件中引用的Zip压缩包保持一致,从而避免应用程序的Zip压缩包和Xap压缩包版本不一致,导致程序运行异常的问题。
优选地,本发明实施例的应用程序为Silverlight应用程序。
根据本发明上述实施例,可以得出本发明的有以效果如下:
当浏览器访问Xap压缩包时,会判断Xap压缩包地址(包含有修改时间参数)与之前缓存的地址是否一致。如果Xap压缩包从上次缓存之后没有修改,则最新修改时间不变,地址一致,使用缓存;如果有修改,时间不同,地址改变,则重新下载。解决了在使用应用程序的缓存时无法使用最新的应用程序的问题,进而达到了使用应用程序的缓存时依然能够使用最新的应用程序效果。
同时,当应用程序没有更新时,依然可以利用缓存,该缓存可以是浏览器缓存,减少带宽占用和下载时间。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种应用程序的缓存处理方法,其特征在于,包括:
当应用程序的Xap压缩包被访问时,获取所述Xap压缩包的当前地址,其中,所述当前地址中包含有最新修改时间参数;
获取缓存中所述Xap压缩包的历史地址,其中,所述历史地址中包含有历史修改时间参数;
判断所述当前地址与所述历史地址是否一致,其中,通过判断所述最新修改时间参数对应的时间与所述历史修改时间参数对应的时间是否一致以判断所述当前地址与所述历史地址是否一致,其中,如果判断出所述最新修改时间参数对应的时间与所述历史修改时间参数对应的时间一致,则确定所述当前地址与所述历史地址一致,如果判断出所述最新修改时间参数对应的时间与所述历史修改时间参数对应的时间不一致,则确定所述当前地址与所述历史地址不一致;
如果判断出所述当前地址与所述历史地址一致,则直接使用所述缓存中的所述Xap压缩包;以及
如果判断出所述当前地址与所述历史地址不一致,则重新下载所述Xap压缩包至所述缓存中,
其中,所述缓存处理方法还包括:
判断所述Xap压缩包是否有更新;
如果判断出所述Xap压缩包有更新,则解压所述Xap压缩包;
从解压的所述Xap压缩包中读取所述Xap压缩包中的配置文件里记录的引用Zip压缩包的地址;
检测读取的所述Zip压缩包的最新修改时间;以及
将所述最新修改时间记录到配置文件中作为修改时间参数。
2.根据权利要求1所述的应用程序的缓存处理方法,其特征在于,当应用程序的Xap压缩包被访问时,获取所述Xap压缩包的当前地址包括:
判断所述Xap压缩包承载的页面是否加载所述Xap压缩包;
如果判断出所述Xap压缩包承载的页面加载所述Xap压缩包,则动态获取所述Xap压缩包的最新修改时间;以及
将所述最新修改时间添加到所述Xap压缩包的地址中作为修改时间参数。
3.根据权利要求1所述的应用程序的缓存处理方法,其特征在于,在将所述最新修改时间记录到配置文件中作为修改时间参数之后,所述缓存处理方法还包括:
保存修改后的所述配置文件;以及
基于修改后的所述配置文件重新压缩所述Xap压缩包。
4.根据权利要求1所述的应用程序的缓存处理方法,其特征在于,所述应用程序为Silverlight应用程序。
5.一种应用程序的缓存处理装置,其特征在于,包括:
第一获取单元,用于当应用程序的Xap压缩包被访问时,获取所述Xap压缩包的当前地址,其中,所述当前地址中包含有最新修改时间参数;
第二获取单元,用于获取缓存中所述Xap压缩包的历史地址,其中,所述历史地址中包含有历史修改时间参数;
第一判断单元,用于判断所述当前地址与所述历史地址是否一致,其中,通过判断所述最新修改时间参数对应的时间与所述历史修改时间参数对应的时间是否一致以判断所述当前地址与所述历史地址是否一致,其中,如果判断出所述最新修改时间参数对应的时间与所述历史修改时间参数对应的时间一致,则确定所述当前地址与所述历史地址一致,如果判断出所述最新修改时间参数对应的时间与所述历史修改时间参数对应的时间不一致,则确定所述当前地址与所述历史地址不一致;
调用单元,用于如果判断出所述当前地址与所述历史地址一致,则直接使用所述缓存中的所述Xap压缩包;以及
下载单元,用于如果判断出所述当前地址与所述历史地址不一致,则重新下载所述Xap压缩包至所述缓存中,
其中,所述缓存处理装置还包括:
第二判断单元,用于判断所述Xap压缩包是否有更新;
解压单元,用于如果判断出所述Xap压缩包有更新,则解压所述Xap压缩包;
读取单元,用于从解压的所述Xap压缩包中读取所述Xap压缩包中的配置文件里记录的引用Zip压缩包的地址;
检测单元,用于检测读取的所述Zip压缩包的最新修改时间;以及
记录单元,用于将所述最新修改时间记录到配置文件中作为修改时间参数。
6.根据权利要求5所述的应用程序的缓存处理装置,其特征在于,所述第一获取单元包括:
判断模块,用于判断所述Xap压缩包承载的页面是否加载所述Xap压缩包;
获取模块,用于如果判断出所述Xap压缩包承载的页面加载所述Xap压缩包,则动态获取所述Xap压缩包的最新修改时间;以及
添加模块,用于将所述最新修改时间添加到所述Xap压缩包的地址中作为修改时间参数。
7.根据权利要求5所述的应用程序的缓存处理装置,其特征在于,所述缓存处理装置还包括:
存储单元,用于在将所述最新修改时间记录到配置文件中作为修改时间参数之后,保存修改后的所述配置文件;以及
压缩单元,用于基于修改后的所述配置文件重新压缩所述Xap压缩包。
8.根据权利要求5所述的应用程序的缓存处理装置,其特征在于,所述应用程序为Silverlight应用程序。
CN201310566733.7A 2013-11-14 2013-11-14 应用程序的缓存处理方法和装置 Active CN103617052B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310566733.7A CN103617052B (zh) 2013-11-14 2013-11-14 应用程序的缓存处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310566733.7A CN103617052B (zh) 2013-11-14 2013-11-14 应用程序的缓存处理方法和装置

Publications (2)

Publication Number Publication Date
CN103617052A CN103617052A (zh) 2014-03-05
CN103617052B true CN103617052B (zh) 2017-01-18

Family

ID=50167755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310566733.7A Active CN103617052B (zh) 2013-11-14 2013-11-14 应用程序的缓存处理方法和装置

Country Status (1)

Country Link
CN (1) CN103617052B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487640A (zh) * 2015-12-15 2016-04-13 北京京东尚科信息技术有限公司 一种安卓手表预加载和缓存图片的方法
CN107493350A (zh) * 2017-09-30 2017-12-19 迈普通信技术股份有限公司 缓存方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882156A (zh) * 2010-06-13 2010-11-10 用友软件股份有限公司 Silverlight客户端可控缓存方法和系统
CN102170479A (zh) * 2011-05-21 2011-08-31 成都市华为赛门铁克科技有限公司 Web缓存的更新方法及Web缓存的更新装置
CN102520962A (zh) * 2011-12-22 2012-06-27 苏州博远容天信息科技有限公司 一种简化Silverlight组件部署的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101882156A (zh) * 2010-06-13 2010-11-10 用友软件股份有限公司 Silverlight客户端可控缓存方法和系统
CN102170479A (zh) * 2011-05-21 2011-08-31 成都市华为赛门铁克科技有限公司 Web缓存的更新方法及Web缓存的更新装置
CN102520962A (zh) * 2011-12-22 2012-06-27 苏州博远容天信息科技有限公司 一种简化Silverlight组件部署的方法

Also Published As

Publication number Publication date
CN103617052A (zh) 2014-03-05

Similar Documents

Publication Publication Date Title
CN105389222B (zh) 一种动态调用原生接口的方法、装置和系统
CN105022750B (zh) 资源文件加载方法和装置
CN106569856B (zh) 一种应用视图资源文件的加载方法和装置
CN103677942B (zh) 一种移动终端浏览网络图片的方法和装置
US20150154313A1 (en) A method, device, browser and program for accessing web page
CN108228818A (zh) 网页资源加载方法及装置、电子设备、以及存储介质
CN106294372A (zh) 应用程序页面快速访问方法及应用其的移动终端
CN103443763B (zh) 包含对重写虚拟函数的调用的支持的isa桥接
CN107370804B (zh) 软件应用处理方法和装置
CN106933871A (zh) 短链接处理方法、装置及短链接服务器
CN111444455A (zh) 浏览器兼容方法、系统、计算机设备及存储介质
CN105653448B (zh) 应用调试方法、应用调试装置和终端
Pande et al. Enhanced web application and browsing performance through service-worker infusion framework
CN104243429B (zh) 一种实现浏览器书签同步的方法、装置及系统
CN107798064A (zh) 页面处理方法、电子设备及计算机可读存储介质
CN106202083A (zh) 用于web页面的资源打包系统、方法及装置
CN110096322A (zh) 适配终端屏幕的方法及装置、存储介质、电子装置
CN103617052B (zh) 应用程序的缓存处理方法和装置
CN104361007B (zh) 浏览器及其收藏夹的处理方法
CN103544271B (zh) 一种浏览器中加载图片处理窗口的方法和装置
CN108062352B (zh) 网页页面缓存处理方法和移动终端设备和介质产品
CN106649299A (zh) 一种网页区块懒加载的方法和装置
CN102156697A (zh) 一种通过微件实现网页应用的方法及终端设备
CN104504125B (zh) 网页数据监测方法和装置
CN104049998B (zh) 一种Android系统中升级包的处理方法、装置和设备

Legal Events

Date Code Title Description
PB01 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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for processing cache of application program

Effective date of registration: 20190531

Granted publication date: 20170118

Pledgee: Shenzhen Black Horse World Investment Consulting Co., Ltd.

Pledgor: Beijing Guoshuang Technology Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: Beijing Guoshuang Technology Co.,Ltd.