CN104615597A - 浏览器中清除缓存文件的方法、装置和系统 - Google Patents
浏览器中清除缓存文件的方法、装置和系统 Download PDFInfo
- Publication number
- CN104615597A CN104615597A CN201310538458.8A CN201310538458A CN104615597A CN 104615597 A CN104615597 A CN 104615597A CN 201310538458 A CN201310538458 A CN 201310538458A CN 104615597 A CN104615597 A CN 104615597A
- Authority
- CN
- China
- Prior art keywords
- field
- browser
- buffer memory
- access
- buffer
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种浏览器中清除缓存文件的方法、装置和系统。其中,该系统包括:客户端,用于浏览器异步发送访问请求;服务器,与客户端建立通讯关系,用于在检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息给客户端;其中,客户端将清空响应信息中的包体信息替换浏览器的缓存中已经保存的数据资源。通过本发明,能够保证客户端可以通过自主控制缓存来及时获取服务器上更新的数据资源,同时使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
Description
技术领域
本发明涉及计算机互联网领域,具体而言,涉及一种浏览器中清除缓存文件的方法、装置和系统。
背景技术
一般情况下,基于超文本传输协议(Hypertext Transfer Protocol,,简称为HTTP)的访问请求和响应消息中可以定义一些与文件缓存相关的字段,包括缓存控制(cache-control)和缓存时间(expires)等字段。当这些字段被设置为特定的值时,文件就会被浏览器缓存起来。
例如,当用户在客户端上使用浏览器访问文件foo.css时,首先,通过浏览器发送请求信息给服务器,该请求信息中包括URL地址:http://qq.com/foo.css,服务器端针对该URL地址返回一个包体为访问文件foo.css的响应信息给客户端的浏览器,如果响应信息的响应头中的expires字段被设置为2013年9月1号0点0分0秒,则浏览器会在这个时间(以本地时间计算)之前一直缓存访问文件foo.css在本地,如果用户使用浏览器再一次访问此URL时,在这个时间内浏览器就会直接从本地缓存中读取文件内容,不再向服务器发送HTTP请求。
再比如,如果响应头中的字段Cache-Control的值被设置为max-age=300,那么访问文件foo.css会被浏览器缓存300秒钟,用户在300秒内访问相同的ULR,浏览器将直接返回缓存内容,不向服务器发送HTTP请求。
上述在浏览器本地缓存访问文件的方法,旨在减少浏览器向服务器发生HTTP请求的次数,但在一些情况下,用于希望浏览器能立即得到服务器上的文件(可能的原因之一是此文件刚刚被更新),此时,如果文件依然处于被缓存的状态,浏览器就不会向服务器发送访问请求,不发送访问请求就无法从服务器上得到更新的文件。
由此,现有技术提供了一个可以清除浏览器中缓存的功能,使得下次浏览器访问该访问文件时,不是从缓存中读取访问文件,而是直接向服务器请求文件。现有的清除浏览器中缓存的技术方案如下:通过创建XMLHTTP对象,运行该脚本之后,浏览器向服务器发起异步请求,从而达到强制请求访问文件的目的,在访问请求强制得到整个访问文件后,新文件会覆盖缓存中的旧文件,此时,缓存区中依旧保存有文件,只不过被缓存的文件是新文件。
例如,在客户端浏览器请求http://qq.com/foo.css这个资源之后,客户端缓存由服务器返回的访问文件foo.css,此时,浏览器可以通过运行XMLHTTP对象的脚本来异步请求http://qq.com/foo.css?v=2,来获取新资源,具体的,服务器会根据异步请求返回新的访问文件foo.css。确切来说,上述方式是通过在url地址的末尾添加search的方式来获得最新的资源。
分析可知,现有技术提供的清除浏览器缓存的方案包括如下缺陷:
一方面,不适合异步请求的文件量过大。如果需要清除缓存的文件数目巨大,则服务器返回的响应信息的包体信息量过大,从而会导致浏览器处理数据的流量过大的问题,非常浪费访问时间,而且会大幅降低浏览器性能。
另一方面,由于现有的浏览器的种类繁多,上述清除缓存的方法无法适用于所有的浏览器。
针对上述相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种浏览器中清除缓存文件的方法、装置和系统,以至少解决相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
根据本发明实施例的一方面,还提供了一种浏览器中清除缓存文件的系统,该系统包括:客户端,用于浏览器异步发送访问请求;服务器,与客户端建立通讯关系,用于在检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息给客户端;其中,客户端使用清空响应信息中的包体信息替换浏览器的缓存中已经保存的数据资源。
根据本发明实施例的另一个方面,提供了一种浏览器中清除缓存文件的方法,该方法包括:浏览器异步发送访问请求给服务器;接收服务器响应访问请求而返回的清空响应信息,其中,在服务器检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息;使用清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源。
根据本发明实施例的又一方面,还提供了一种浏览器中清除缓存文件的装置,该装置包括:发送模块,用于浏览器异步发送访问请求给服务器;接收模块,用于接收服务器响应访问请求而返回的清空响应信息,其中,在服务器检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息;清除模块,用于将清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源。
根据本发明实施例的又一方面,还提供了一种浏览器中清除缓存文件的方法,该方法包括:接收客户端的浏览器异步发送的访问请求;检测访问请求的包头信息中是否包含自定义的清除字段;在检测到清除字段的情况下,返回清空响应信息,其中,清空响应信息用于替换浏览器的缓存中已经保存的数据资源。
根据本发明实施例的再一方面,还提供了一种浏览器中清除缓存文件的装置,该装置包括:接收模块,用于接收客户端的浏览器异步发送的访问请求;检测模块,用于检测访问请求的包头信息中是否包含自定义的清除字段;返回模块,用于在检测到清除字段的情况下,返回清空响应信息,其中,清空响应信息用于替换浏览器的缓存中已经保存的数据资源。
在本发明实施例中,采用客户端,用于浏览器异步发送访问请求;服务器,与客户端建立通讯关系,用于在检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息给客户端;其中,客户端使用清空响应信息中的包体信息替换浏览器的缓存中已经保存的数据资源。上述方案通过在客户端发送的异步访问请求的包头中自定义一个清除字段,服务器接收到异步访问请求之后,如果检测到异步访问请求的包头里的清除字段,就确定了需要返回给客户端浏览器的内容,会替换掉原来缓存中存储的数据资源,容易注意到,通过本发明实施例所提供的方案,比较现有技术不需要重新下载整个访问文件,因此,在客户端的浏览器下次发出访问请求时,浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能,进而解决了相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的浏览器中清除缓存文件的系统结构示意图;
图2是根据本发明实施例二的浏览器中清除缓存文件的方法示意图;
图3是根据本发明实施例三的浏览器中清除缓存文件的方法示意图;
图4是根据本发明实施例四的浏览器中清除缓存文件的装置结构示意图;以及
图5是根据本发明实施例五的浏览器中清除缓存文件的装置结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
在描述本申请的各实施例的进一步细节之前,将参考图1来描述可用于实现本申请的原理的一个合适的计算体系结构。在以下描述中,除非另外指明,否则将参考由一个或多个计算机执行的动作和操作的符号表示来描述本申请的各实施例。由此,可以理解,有时被称为计算机执行的这类动作和操作包括计算机的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机的存储器系统中的位置上维护它,这以本领域的技术人员都理解的方式重配置或改变了计算机的操作。维护数据的数据结构是具有数据的格式所定义的特定属性的存储器的物理位置。然而,尽管在上述上下文中描述本申请,但它并不意味着限制性的,如本领域的技术人员所理解的,后文所描述的动作和操作的各方面也可用硬件来实现。
在其最基本的配置中,图1是根据本发明实施例一的浏览器中清除缓存文件的系统结构示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应将该计算系统解释为对图1所示的任一组件或其组合具有任何依赖或需求。
如图1所示,该系统可以包括:一客户端1和一服务器2。
客户端1,用于浏览器异步发送访问请求。
服务器2,与客户端1建立通讯关系,用于在检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息给客户端1。
其中,客户端1使用清空响应信息中的包体信息替换浏览器的缓存中已经保存的数据资源。优选地,在替换浏览器的缓存中已经保存的数据资源的同时,浏览器不缓存清空响应信息中的包体信息。
本申请上述实施例,通过在客户端1发送的异步访问请求的包头中自定义一个清除字段,服务器2接收到异步访问请求之后,如果检测到异步访问请求的包头里的清除字段,就确定了需要返回给客户端1浏览器的内容,即对应该异步访问请求会返回一个清空响应信息,该清空响应信息的包体信息会替换掉原来缓存中存储的数据资源。通过本发明实施例所提供的方案,比较现有技术不需要重新下载整个访问文件,因此,在客户端的浏览器下次发出访问请求时,浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能,进而解决了相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
容易注意到,在替换浏览器的缓存中已经保存的数据资源的同时,如果浏览器不缓存清空响应信息中的包体信息,可以获知,由于浏览器不缓存清空响应信息中的包体信息,因此,通过本发明实施例所提供的方案,缓存中的内容会变成空值,比较现有技术不需要重新下载整个访问文件,使用了空文件来代替,因此,在客户端1的浏览器下次发出访问请求时,由于缓存区中的内容为空,从而使得浏览器需要重新连接服务器2来获取数据资源,这样不仅实现了客户端1浏览器可以根据需要重新访问服务器2来获取资源,保证可以通过自主控制缓存来及时获取服务器2上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,而且由于用于清空缓存区的响应信息的包体为空值,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
优选地,本申请提供的上述实施例一中,可以通过在异步的访问请求中添加自定义字段,从而使得服务器2返回一个包体信息为空值的响应信息,实现了对客户端1本地缓存的数据资源的清除,上述方案不需要重新下载整个数据资源对应的文件,而使用了空文件代替客户端1中以及缓存的数据,使得浏览器访问文件时无法从本地缓存读取到资源,从而需要直接访问服务器2,从而使得在服务器2端更新了数据资源之后,客户端1可以根据需要快速且直接的读取到更新的数据。
由上可知,本申请上述实施例中服务器2返回的清空响应信息的包头信息不仅可以为空值,也可以不为空值(比如返回一个json数据{em:0}),但由于浏览器不缓存清空响应信息中的包体信息,因此,无论包体信息包含任意内容,浏览器的缓存都会被清空,而返回的json数据{em:0}可以用来通知浏览器已清空缓存。清空响应信息的包体信息为空时可以最大限度的节省带宽。
具体的,服务器2在接收到该异步发送的访问请求时,会检查包头是否含有清除字段NohostCleanCache,优选地,在检查到设置有该字段,且该字段的值为Yes时,服务器2可以返回一个包体为空的响应,来清空客户端1浏览器中缓冲区的内容。此时如果客户端1的浏览器再发出访问请求时,例如访问http://qq.com/foo.css,不会从缓存区中读取foo.css文件,会直接访问服务器2。
优选地,当清空响应信息中的包体信息为空值时,本申请上述实施例一种的客户端1可以包括如下部分:接收装置102和处理器103。
其中,接收装置102,用于接收服务器2响应访问请求而返回的清空响应信息;处理器103,用于提取清空响应信息中包体信息的空值,并将空值覆盖浏览器的缓存区中已经保存的数据资源,使得浏览器的缓存区被清空。
上述接收装置102和处理器103除了可以通过硬件装置来实现,也可以通过软件实现。
需要进一步说明的是,在本申请上述实施例一中异步发送的访问请求中还需要设置一个URL访问信息,在客户端1浏览器中用于缓存数据资源的缓冲区被清空之后,客户端1通过发送装置101执行浏览器发送新访问请求,其中,新访问请求也包括上述URL访问信息,在客户端1通过该URL访问信息获取新的数据资源的过程中,客户端1中的处理器103首先开始检测本地缓存区中的内容,由此检测到缓存区中的内容为空,则提取该URL访问信息中的域名,并根据URL访问信息中的域名对应的服务器2地址访问新服务器2,获取到对应的数据资源,该数据资源可以是新服务器2上已经更新后的文件。
具体的,本申请上述实施例一提供的方案实现了清除客户端1浏览器的缓存数据的需求,使得浏览器从缓存区无法得到数据,而需要重新链接服务器2来获取新的数据文件。
上述实施例可以应用于如下的应用场景中:客户端浏览器访问服务器A,得到了资源foo.css,并将该资源缓存在了本地缓冲区中。此时,与服务器A具有相同域名的服务器B保存了更新后的资源foo.css(服务器B的foo.css是开发人员新发布更新的),此时,这时浏览器需要立刻从服务器B中取回更新后的资源,从而使得用户可以访问到新的资源,为了确保浏览器能够实时取到服务器B上的更新资源而不使用旧的缓存,可以利用本申请实施例一提供的技术方案来实现。具体的,客户端先发送一个异步的访问请求给服务器A,服务器A检测到该异步访问请求中包含一个清空字段,从而返回给客户端一个包体为空值的响应信息,该空值替换了客户端缓冲区中的数据,由此,如果客户端再次请求资源foo.css时,由于缓冲区内容为空,所以,客户端需要重新链接服务器,从而从新的服务器上获取到数据资源,由于此时的数据资源是已经更新后的数据,从而使得客户端可以实时访问得到新的数据资源。上述场景中的服务器A和服务器B可以是同一个服务器,也可以是两个独立的服务器终端。
另外,站在开发工作者的角度,本申请上述实施例一应用在移动终端web开发中也能产生较大的有益效果。由于在移动终端上清除缓存比在个人电脑pc上要复杂耗时,甚至某些系统需要系统的root权限或者安装其他辅助工具才能完成清空缓存,而使用本申请实施例一提供的方案就可以实现,在移动终端的web页面上直接实现缓存的清除,提高了工作效率。
需要详细说明的是,本申请客户端的浏览器在异步发送访问请求之前,需要创建并运行用于发送异步访问请求的运行脚本,例如,可以在浏览器中用JavaScript脚本来创建一个xmlhttp对象,客户端浏览器使用xmlhttp对象来发出访问请求,可以十分方便的和服务器交换数据。
本申请上述方案可以基于xmlhttp对象来实现,即在浏览器中调用并运行xmlhttp对象之后,客户端启动通知服务器需要进行清缓存操作。
本申请实施例中所创建的xmlhttp对象可以针对不同的浏览器具有不同的创建方式,例如,在IE浏览器中,可以使用ActiveXObject("Msxml2.XMLHTTP")或ActiveXObject("Microsoft.XMLHTTP")来创建,而在其他现代浏览器中,可以使用newXMLHttpRequest()进行创建。
以IE浏览器为例,创建xmlhttp对象的脚本如下:
优选地,本申请上述实施例中,需要给创建的xmlhttp对象设置若干字段,然后将设置好字段的xmlhttp对象作为异步访问请求的内容发送给服务器,请求对应的数据文件。该异步发送的访问请求的包头信息至少可以包括如下字段:自定义的清除字段(NohostCleanCache)、缓存更新时间字段(If-Modified-Since)、缓存控制字段(Cache-Control)和缓存编译字段(Pragma),这些字段保存在客户端的存储器中,可以是存储器的缓存区中,而且对应不同的浏览器所设置的访问请求的包头信息不同,但该异步访问请求的包体为空值,具体的,针对不同的浏览器设置的字段如下表1所示:
表1:
由上表1内容可知:
当浏览器为IE浏览器时,需要设置4个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,缓存控制字段Cache-Control为不缓存(即为no-cache,no-store),缓存编译字段Pragma为不缓存(即为no-cache)。
当浏览器为Firefox浏览器时,需要设置2个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,不需要设置缓存控制字段Cache-Control和缓存编译字段Pragma。
当浏览器为Opera浏览器时,需要设置4个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,缓存控制字段Cache-Control为不缓存(即为no-cache,no-store),缓存编译字段Pragma为不缓存(即为no-cache);
当浏览器为Chrome浏览器时,需要设置3个字段:设置清除字段NohostCleanCache为YES,缓存控制字段Cache-Control为不缓存(即为no-cache),缓存编译字段Pragma为不缓存(即为no-cache),不需要设置缓存更新时间字段If-Modified-Since。
NohostCleanCache字段于自定义字段,表中横线代表该字段没有设置对应的数据。且除了Firefox是使用POST方式发送请求外,其他浏览器都使用GET方式发送请求。
由此可知,本申请可以应用于各种浏览器,包括微软的Internet Explorer系列、Mozzila的Firefox、谷歌的Chrome以及Opera浏览器。针对上述各个浏览器需要对上述参数设置不同的值,目的是为了服务器接收到异步的访问请求之后,可以通过读取各个参数的值来识别当前的清除操作所针对的浏览器。优选地,为了使得访问请求最小程度的节省资源,提高访问效率,可以将发送的访问请求的包体设置为空值null。
下面就以需要在客户端的IE浏览器上,清除URL地址为http://qq.com/foo.css所对应的缓存文件foo.css为例,进行详细描述。
客户端在创建xmlhttp对象的过程中,该XMLHTTP对象设置异步访问请求的结构和内容,设置该异步访问请求的请求行为http://qq.com/foo.css,并至少设置若干消息头字段,客户端将各个头字段赋值之后发送给服务器,以请求http://qq.com/foo.css文件。本申请上述实施例所提供的方案可以针对当前客户端上不同的浏览器添加不同的字段,例如,针对IE浏览器,需要至少设置如下4个字段,并对每个字段赋值,其中,NohostCleanCache为yes;If-Modified-Since为0;Cache-Control为no-cache,no-store;Pragma为no-cache,其中,NohostCleanCache字段并非HTTP中定义的字段,属于自定义字段。
由上可知,由于上述字段都是关于异步访问请求进行缓存的相关字段,且从每个字段的赋值(例如If-Modified-Since为0;Cache-Control为no-cache,no-store;Pragma为no-cache)可知,上述对xmlhttp对象设置的头部字段的目的是为了使得该异步访问请求的资源不被IE浏览器缓存,显而易见的,由于客户端各个浏览器之间的差异,针对不同的浏览器设置的参数项并不完全相同,详见表1。
然而,这并不意味着本申请对上述异步访问请求中设置的字段及表现形式以及获取方式作出了限定,上述异步访问请求中除了需要携带上述消息头字段以外,该异步访问请求还可以携带其他字段,例如,Accept字段、Accept-Charset字段、Accept-Encoding字段、Accept-Language字段、Host字段、Referer字段、User-Agent字段、Cookie字段、Connection字段、Date字段等。
其中,Accept:用于高速服务器,表示客户端支持的数据类型;Accept-Charset:用于告诉服务器,客户端采用的编码格式;Accept-Encoding:用于告诉服务器,客户端支持的数据压缩格式;Accept-Language:客户端的语言环境;Host:客户端通过这个头高速服务器,想访问的主机名;Referer:客户端通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链);User-Agent:客户端通过这个头告诉服务器,客户机的软件环境;Cookie:客户机通过这个头可以向服务器带数据;Connection:处理完这次请求后是否断开连接还是继续保持连接;Date:当前时间值。
一般而言,在本申请实施例中,上述统一资源定位符URL(Uniform ResourceLocator)可以对目标网页的网页文件进行定位,该目标网页的网页文件存储于对应的服务器中,该服务器的IP地址通过输入的URL地址中的域名进行查询。此处应该知晓的是对目标网页的网页访问请求通常可以来自于对浏览器或用户界面中的指向目标网页的链接的点选的识别,例如,在本申请的一些实施例中,对上述浏览器或用户界面中存在URL超链接的一段文字上的鼠标点击动作的捕捉与识别即可以形成网页访问请求。当然,上述指向目标网页的URL链接也可以不出现在文字上,而是在图标、图片、视频画面等其他浏览器或用户界面中的元素上,本申请对此不作限定。
优选地,本申请上述实施例一提供的一种可行方案中,可以设置清空响应信息中的包头信息至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,缓存控制字段设置为不缓存,缓存时间字段设置为-1或0,缓存编译字段设置为不缓存。
具体的,在服务器接收到异步的访问请求之后,如果检查异步访问请求的消息头中含有NohostCleanCache字段,则会返回一个包体为空值的清空响应信息来清空客户端缓冲区的数据,此时,该清空响应信息还可以携带与缓存相关的字段,例如,缓存控制字段Cache-control、缓存时间字段Expires和缓存编译字段Pragma,由于在将缓存控制字段设置为不缓存(即为no-cache),缓存时间字段设置为-1或0,缓存编译字段设置为不缓存(即为no-cache)的情况下,表示客户端也不会缓存当前返回的清空响应信息本身,从而减轻了资源访问的负担。此时,该清空响应信息可以携带上述任意一个或多个字段,来达到客户端不缓存当前响应信息的目的。
另外,上述实施例一所提供的另一种可行方案中,服务器返回的清空响应信息中的包头信息也可以不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。这种在消息中不设置与缓存相关的字段的方法,也可以得到不缓存当前清空响应信息的效果。
此处需要注意的是,上述实施例并不意味着本申请对上述返回的清空响应信息的内容以及获取方式作出了限定,上述清空响应信息中除了需要携带上述与缓存相关的消息头字段以外,该异步访问请求还可以携带其他字段,例如,Location字段、Server字段、Content-Encoding字段、Content-Length字段、Content-Type字段、Last-Modified字段、Refresh字段、Content-Disposition字段、Transfer-Encoding字段等。
其中,Location:这个头配合302状态码使用,用于告诉客户需要访问谁;Server:服务器通过这个头告诉浏览器服务器的类型;Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式;Content-Length:服务器通过这个头告诉浏览器回送数据的长度;Content-Type:服务器通过这个头告诉浏览器回送数据的类型;Last-Modified:告诉浏览器当前资源的最后缓存时间;Refresh:告诉浏览器隔多久刷新一次;Content-Disposition:告诉浏览器以下载方式打开数据;Transfer-Encoding:告诉浏览器数据的传送格式;ETag:缓存相关的头。
优选地,在上述各个实施例中,服务器接收到异步访问请求之后,除了检查到该异步访问请求的消息头中含有NohostCleanCache字段,才会返回清空响应信息,更进一步的,还可以检查该字段的值是否设置为YES,如果为YES才会返回包体为空的响应信息。
实施例2
根据本发明实施例,还提供了一种用于实施上述系统实施例的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例二的浏览器中清除缓存文件的方法示意图。
如图2所示,该方法可以应用在客户端,从客户端的角度对本申请的实施过程进行详细描述,可以包括如下步骤:
步骤S10,可以通过图1所示的客户端来浏览器异步发送访问请求给服务器。
步骤S30,可以通过图1所示的客户端来接收服务器响应访问请求而返回的清空响应信息,其中,在服务器检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息。
步骤S50,可以通过图1所示的客户端来使用清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源。优选地,在替换浏览器的缓存中已经保存的数据资源的同时,浏览器不缓存清空响应信息中的包体信息。
本申请上述实施例二中,通过在浏览器发送的异步访问请求的包头中自定义一个清除字段,来使得服务器接收到异步访问请求之后,如果检测到异步访问请求的包头里的清除字段,就确定了需要返回给客户端浏览器的内容,即对应该异步访问请求会返回一个清空响应信息,该清空响应信息的包体信息会替换掉原来缓存中存储的数据资源。通过本发明实施例所提供的方案,比较现有技术不需要重新下载整个访问文件,因此,在客户端的浏览器下次发出访问请求时,浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能,进而解决了相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
容易注意到,在替换浏览器的缓存中已经保存的数据资源的同时,如果浏览器不缓存清空响应信息中的包体信息,可以获知,由于浏览器不缓存清空响应信息中的包体信息,因此,通过本发明实施例所提供的方案,缓存中的内容会变成空值,比较现有技术不需要重新下载整个访问文件,使用了空文件来代替,因此,在客户端的浏览器下次发出访问请求时,由于缓存区中的内容为空,从而使得浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证通过自主控制缓存来可以及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,而且由于用于清空缓存区的响应信息的包体为空值,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
本申请上述实施例所提供的步骤S10至步骤S50可以在客户端上运行,优选地,可以通过在异步的访问请求中添加自定义字段,从而使得服务器返回一个包体信息为空值的响应信息,实现了对客户端本地缓存的数据资源的清除,上述方案不需要重新下载整个数据资源对应的文件,而使用了空文件代替客户端中以及缓存的数据,使得浏览器访问文件时无法从本地缓存读取到资源,从而需要直接访问服务器,从而使得在服务器端更新了数据资源之后,客户端可以根据需要快速且直接的读取到更新的数据。
由上可知,本申请上述实施例中服务器2返回的清空响应信息的包头信息不仅可以为空值,也可以不为空值(比如返回一个json数据{em:0}),但由于浏览器不缓存清空响应信息中的包体信息,因此,无论包体信息包含任意内容,浏览器的缓存都会被清空,而返回的json数据{em:0}可以用来通知浏览器已清空缓存。清空响应信息的包体信息为空时可以最大限度的节省带宽。
具体的,服务器在接收到该异步发送的访问请求时,会检查包头是否含有清除字段NohostCleanCache,优选地,在检查到设置有该字段,且该字段的值为Yes时,服务器可以返回一个包体为空的响应,来清空客户端浏览器中缓冲区的内容。此时如果客户端的浏览器再发出访问请求时,例如访问http://qq.com/foo.css,不会从缓存区中读取foo.css文件,会直接访问服务器来读取foo.css文件。
优选地,本申请上述实施例二中,当清空响应信息中的包体信息为空值时,步骤S50,将清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源的步骤可以包括如下步骤:
步骤S501,提取清空响应信息中包体信息的空值。
步骤S502,将空值覆盖浏览器的缓存区中已经保存的数据资源,使得浏览器的缓存区被清空。
上述步骤S501和步骤S502可以运行在客户端中。
本申请上述实施例二中的一种可选实施例中,可以设置清空响应信息中的包头信息至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,缓存控制字段设置为不缓存,缓存时间字段设置为-1或0,缓存编译字段设置为不缓存。
具体的,在步骤S30接收服务器响应访问请求而返回的清空响应信息之前,服务器接收到浏览器发送的异步访问请求,此时,如果检查异步访问请求的消息头中含有NohostCleanCache字段,则会返回一个包体为空值的清空响应信息来清空客户端浏览器的缓冲区中已经保存的数据,此时,该清空响应信息还可以携带与缓存相关的字段,例如,缓存控制字段Cache-control、缓存时间字段Expires和缓存编译字段Pragma,由于在将缓存控制字段设置为不缓存(即为no-cache),缓存时间字段设置为-1或0,缓存编译字段设置为不缓存(即为no-cache)的情况下,表示客户端也不会缓存当前返回的清空响应信息本身,从而减轻了资源访问的负担。此时,该清空响应信息可以携带上述任意一个或多个字段,来达到客户端不缓存当前响应信息的目的。
本申请上述实施例二中的另外一种可选实施例中,可以将清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。这种在消息中不设置与缓存相关的字段的方法,也可以得到不缓存当前清空响应信息的效果。
此处需要注意的是,上述实施例并不意味着本申请对上述返回的清空响应信息的内容以及获取方式作出了限定,上述清空响应信息中除了需要携带上述与缓存相关的消息头字段以外,该异步访问请求还可以携带其他字段,例如,Location字段、Server字段、Content-Encoding字段、Content-Length字段、Content-Type字段、Last-Modified字段、Refresh字段、Content-Disposition字段、Transfer-Encoding字段等。
其中,Location:这个头配合302状态码使用,用于告诉客户需要访问谁;Server:服务器通过这个头告诉浏览器服务器的类型;Content-Encoding:服务器通过这个头告诉浏览器数据的压缩格式;Content-Length:服务器通过这个头告诉浏览器回送数据的长度;Content-Type:服务器通过这个头告诉浏览器回送数据的类型;Last-Modified:告诉浏览器当前资源的最后缓存时间;Refresh:告诉浏览器隔多久刷新一次;Content-Disposition:告诉浏览器以下载方式打开数据;Transfer-Encoding:告诉浏览器数据的传送格式;ETag:缓存相关的头。
优选地,在上述各个实施例中,服务器接收到异步访问请求之后,除了检查到该异步访问请求的消息头中含有NohostCleanCache字段,才会返回清空响应信息,更进一步的,还可以检查该字段的值是否设置为YES,如果为YES才会返回包体为空的响应信息。
需要进一步说明的是,在本申请上述实施例二中异步发送的访问请求中还需要设置一个URL访问信息,优选地,在步骤S50替换浏览器的缓冲区中已经保存的数据资源之后或步骤S502浏览器的缓存区被清空之后,还可以包括如下步骤:
步骤S503,浏览器发送新访问请求,其中,新访问请求包括URL访问信息。
具体的,在客户端浏览器中用于缓存数据资源的缓冲区被清空之后,客户端可以通过一个发送装置来执行浏览器发送新访问请求,其中,新访问请求也包括上述URL访问信息。
步骤S504,检测到缓存区中的内容为空时,则查询并获取URL访问信息中的域名。
具体的,在客户端通过该URL访问信息获取新的数据资源的过程中,客户端中的处理器首先开始检测本地缓存区中的内容,由此检测到缓存区中的内容为空,则提取该URL访问信息中的域名,
步骤S505,根据URL访问信息中的域名获取对应的服务器地址。
具体的,该步骤可以使用传统的方式根据域名从域名服务器中获取该域名对应的IP地址,当然,本申请实施例不局限于上述方式。
步骤S506,浏览器通过服务器地址访问新服务器,获取到对应的数据资源。
具体的,在客户端浏览器获知当前新访问请求所要访问的服务器IP地址之后,可以根据该URL访问信息中的域名对应的服务器地址访问新服务器,获取到对应的数据资源,该数据资源可以是新服务器上已经更新后的文件。
由上可知,本申请上述各个实施例提供的方案实现了清除客户端浏览器的缓存数据的需求,使得浏览器从缓存区无法得到数据,而需要重新链接服务器来获取新的数据文件。
上述实施例可以应用于如下的应用场景中:在客户端上运行上述步骤S10-S50,客户端浏览器访问服务器A,得到了资源foo.css,并将该资源缓存在了本地缓冲区中。此时,与服务器A具有相同域名的服务器B保存了更新后的资源foo.css(服务器B的foo.css是开发人员新发布更新的),此时,这时浏览器需要立刻从服务器B中取回更新后的资源,从而使得用户可以访问到新的资源,为了确保浏览器能够实时取到服务器B上的更新资源而不使用旧的缓存,可以利用本申请实施例二提供的技术方案来实现。具体的,客户端浏览器先发送一个异步的访问请求给服务器A,服务器A检测到该异步访问请求中包含一个清空字段,从而返回给客户端一个包体为空值的响应信息,该空值替换了客户端缓冲区中的数据,由此,如果客户端再次请求资源foo.css时,由于缓冲区内容为空,所以,客户端需要重新链接服务器,从而从新的服务器上获取到数据资源,由于此时的数据资源是已经更新后的数据,从而使得客户端可以实时访问得到新的数据资源。上述场景中的服务器A和服务器B可以是同一个服务器,也可以是两个独立的服务器终端。
另外,站在开发工作者的角度,本申请上述实施例一应用在移动终端web开发中也能产生较大的有益效果。由于在移动终端上清除缓存比在个人电脑pc上要复杂耗时,甚至某些系统需要系统的root权限或者安装其他辅助工具才能完成清空缓存,而使用本申请实施例一提供的方案就可以实现,在移动终端的web页面上直接实现缓存的清除,提高了工作效率。
需要详细说明的是,本申请客户端的浏览器在步骤S10,异步发送访问请求之前,需要创建并运行用于发送异步访问请求的运行脚本,例如,可以在浏览器中用JavaScript脚本来创建一个xmlhttp对象,客户端浏览器使用xmlhttp对象来发出访问请求,可以十分方便的和服务器交换数据。
本申请上述方案可以基于xmlhttp对象来实现,即在浏览器中调用并运行xmlhttp对象之后,客户端启动通知服务器需要进行清缓存操作。
本申请实施例中所创建的xmlhttp对象可以针对不同的浏览器具有不同的创建方式,例如,在IE浏览器中,可以使用ActiveXObject("Msxml2.XMLHTTP")或ActiveXObject("Microsoft.XMLHTTP")来创建,而在其他现代浏览器中,可以使用newXMLHttpRequest()进行创建。
优选地,本申请上述实施例中,需要给创建的xmlhttp对象设置若干字段,然后将设置好字段的xmlhttp对象作为异步访问请求的内容发送给服务器,请求对应的数据文件。该异步发送的访问请求的包头信息至少可以包括如下字段:自定义的清除字段(NohostCleanCache)、缓存更新时间字段(If-Modified-Since)、缓存控制字段(Cache-Control)和缓存编译字段(Pragma),这些字段保存在客户端的存储器中,可以是存储器的缓存区中,而且对应不同的浏览器所设置的访问请求的包头信息不同,但该异步访问请求的包体为空值,具体的,针对不同的浏览器设置的字段如下表1所示:
表1:
由上表1内容可知:
当浏览器为IE浏览器时,需要设置4个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,缓存控制字段Cache-Control为不缓存(即为no-cache,no-store),缓存编译字段Pragma为不缓存(即为no-cache)。
当浏览器为Firefox浏览器时,需要设置2个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,不需要设置缓存控制字段Cache-Control和缓存编译字段Pragma。
当浏览器为Opera浏览器时,需要设置4个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,缓存控制字段Cache-Control为不缓存(即为no-cache,no-store),缓存编译字段Pragma为不缓存(即为no-cache);
当浏览器为Chrome浏览器时,需要设置3个字段:设置清除字段NohostCleanCache为YES,缓存控制字段Cache-Control为不缓存(即为no-cache),缓存编译字段Pragma为不缓存(即为no-cache),不需要设置缓存更新时间字段If-Modified-Since。
NohostCleanCache字段于自定义字段,表中横线代表该字段没有设置对应的数据。且除了Firefox是使用POST方式发送请求外,其他浏览器都使用GET方式发送请求。
由此可知,本申请可以应用于各种浏览器,包括微软的Internet Explorer系列、Mozzila的Firefox、谷歌的Chrome以及Opera浏览器。针对上述各个浏览器需要对上述参数设置不同的值,目的是为了服务器接收到异步的访问请求之后,可以通过读取各个参数的值来识别当前的清除操作所针对的浏览器。优选地,为了使得访问请求最小程度的节省资源,提高访问效率,可以将发送的访问请求的包体设置为空值null。
然而,这并不意味着本申请对上述异步访问请求中设置的字段及表现形式以及获取方式作出了限定,上述异步访问请求中除了需要携带上述消息头字段以外,该异步访问请求还可以携带其他字段,例如,Accept字段、Accept-Charset字段、Accept-Encoding字段、Accept-Language字段、Host字段、Referer字段、User-Agent字段、Cookie字段、Connection字段、Date字段等。
其中,Accept:用于高速服务器,客户机支持的数据类型;Accept-Charset:用于告诉服务器,客户机采用的编码格式;Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式;Accept-Language:客户机的语言环境;Host:客户机通过这个头高速服务器,想访问的主机名;Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链);User-Agent:客户机通过这个头告诉服务器,客户机的软件环境;Cookie:客户机通过这个头可以向服务器带数据;Connection:处理完这次请求后是否断开连接还是继续保持连接;Date:当前时间值。
下面就以需要在客户端的IE浏览器上,清除URL地址为http://qq.com/foo.css所对应的缓存文件foo.css为例,进行详细描述。
客户端在创建xmlhttp对象的过程中,该XMLHTTP对象设置异步访问请求的结构和内容,设置该异步访问请求的请求行为http://qq.com/foo.css,并至少设置若干消息头字段,客户端将各个头字段赋值之后发送给服务器,以请求http://qq.com/foo.css文件。本申请上述实施例所提供的方案可以针对当前客户端上不同的浏览器添加不同的字段,例如,针对IE浏览器,需要至少设置如下4个字段,并对每个字段赋值,其中,NohostCleanCache为yes;If-Modified-Since为0;Cache-Control为no-cache,no-store;Pragma为no-cache,其中,NohostCleanCache字段并非HTTP中定义的字段,属于自定义字段。
由上可知,由于上述字段都是关于异步访问请求进行缓存的相关字段,且从每个字段的赋值(例如If-Modified-Since为0;Cache-Control为no-cache,no-store;Pragma为no-cache)可知,上述对xmlhttp对象设置的头部字段的目的是为了使得该异步访问请求的资源不被IE浏览器缓存,显而易见的,由于客户端各个浏览器之间的差异,针对不同的浏览器设置的参数项并不完全相同,详见表1。
一般而言,在本申请实施例中,上述统一资源定位符URL(Uniform ResourceLocator)可以对目标网页的网页文件进行定位,该目标网页的网页文件存储于对应的服务器中,该服务器的IP地址通过输入的URL地址中的域名进行查询。此处应该知晓的是对目标网页的网页访问请求通常可以来自于对浏览器或用户界面中的指向目标网页的链接的点选的识别,例如,在本申请的一些实施例中,对上述浏览器或用户界面中存在URL超链接的一段文字上的鼠标点击动作的捕捉与识别即可以形成网页访问请求。当然,上述指向目标网页的URL链接也可以不出现在文字上,而是在图标、图片、视频画面等其他浏览器或用户界面中的元素上,本申请对此不作限定。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例3
根据本发明实施例,还提供了一种用于实施上述系统实施例的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图3是根据本发明实施例三的浏览器中清除缓存文件的方法示意图。
如图3所示,该方法可以应用在服务器端,从服务器端的角度对本申请的实施过程进行详细描述,可以包括如下步骤:
步骤S20,可以通过图1所示的服务器端来接收客户端的浏览器异步发送的访问请求。
步骤S40,可以通过图1所示的服务器来检测访问请求的包头信息中是否包含自定义的清除字段。
步骤S60,可以通过图1所示的服务器来在检测到清除字段的情况下,返回清空响应信息,其中,清空响应信息用于替换浏览器的缓存中已经保存的数据资源。优选地,在替换浏览器的缓存中已经保存的数据资源的同时,浏览器可以不缓存清空响应信息中的包体信息。
本申请上述实施例三中,服务器端通过对接收到的异步访问请求的包头进行检测来确定是否需要返回包头为空的清空响应信息,如果检测到异步访问请求的包头里的清除字段,就确定了需要返回给客户端浏览器的内容,即对应该异步访问请求会返回一个清空响应信息,该清空响应信息的包体信息会替换掉原来缓存中存储的数据资源。通过本发明实施例所提供的方案,比较现有技术不需要重新下载整个访问文件,因此,在客户端的浏览器下次发出访问请求时,浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能,进而解决了相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
上述清除字段是客户端自定义的字段,容易注意到,在替换浏览器的缓存中已经保存的数据资源的同时,如果浏览器不缓存清空响应信息中的包体信息,可以获知,由于浏览器不缓存清空响应信息中的包体信息,因此,通过本发明实施例所提供的方案,服务器根据清除字段而返回的清空响应信息会将缓存中的内容变成空值,比较现有技术不需要重新下载整个访问文件,使用了空文件来代替,因此,由于服务器使得缓存区中的内容为空,从而使得浏览器需要重新连接服务器来获取数据资源,这样不仅实现了浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,而且由于用于清空缓存区的响应信息的包体为空值,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
本申请上述实施例所提供的步骤S20至步骤S60可以在服务器上运行,优选地,服务器可以通过添加了自定义字段的异步访问请求来返回一个包体信息为空值的响应信息,实现了对浏览器本地缓存的数据资源的清除,上述方案不需要重新下载整个数据资源对应的文件,而使用了空文件代替客户端中以及缓存的数据,使得浏览器访问文件时无法从本地缓存读取到资源,从而需要直接访问服务器,从而使得在服务器端更新了数据资源之后,客户端可以根据需要快速且直接的读取到更新的数据。
由上可知,本申请上述实施例中服务器2返回的清空响应信息的包头信息不仅可以为空值,也可以不为空值(比如返回一个json数据{em:0}),但由于浏览器不缓存清空响应信息中的包体信息,因此,无论包体信息包含任意内容,浏览器的缓存都会被清空,而返回的json数据{em:0}可以用来通知浏览器已清空缓存。清空响应信息的包体信息为空时可以最大限度的节省带宽。
具体的,服务器在接收到该异步发送的访问请求时,会检查包头是否含有清除字段NohostCleanCache,优选地,在检查到设置有该字段,且该字段的值为Yes时,服务器可以返回一个包体为空的响应,来清空客户端浏览器中缓冲区的内容。此时如果客户端的浏览器再发出访问请求时,例如访问http://qq.com/foo.css,不会从缓存区中读取foo.css文件,会直接访问服务器来读取foo.css文件。
优选地,当清空响应信息中的包体信息为空值时,本申请上述实施例二中的步骤S60,在将清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源之后,可以包括如下步骤:
步骤S601,接收服务器响应访问请求而返回的清空响应信息。
步骤S602,提取清空响应信息中包体信息的空值。
步骤S603,将空值覆盖浏览器的缓存区中已经保存的数据资源,使得浏览器的缓存区被清空。
上述实施例步骤S601至步骤S603可以实现在客户端中,用于接收服务器返回的清空响应信息。
本申请上述实施例中,一种可选的方案中,可以将清空响应信息中的包头信息设置为至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,缓存控制字段设置为不缓存,缓存时间字段设置为-1或0,缓存编译字段设置为不缓存。
在另外一种可选的方案中,清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。
由上可知,本实施例三中涉及到的清空响应信息的内容、获取方式,以及该清空响应信息的应用示例及各种优选示例,与上述实施例二所提供的示例相同,但需要明确的是,本实施例三不局限于上述实施例二所提供的方案。
同样的,上述实施例三中并不意味着本申请对上述返回的清空响应信息的内容以及获取方式作出了限定,上述清空响应信息中除了需要携带上述与缓存相关的消息头字段以外,该异步访问请求还可以携带其他字段,例如,Location字段、Server字段、Content-Encoding字段、Content-Length字段、Content-Type字段、Last-Modified字段、Refresh字段、Content-Disposition字段、Transfer-Encoding字段等。
需要进一步说明的是,在本申请上述实施例三中异步发送的访问请求可以包括一个URL访问信息,其中,在将清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源之后或步骤S603中浏览器的缓存区被清空之后,还可以包括如下步骤:
步骤S604,浏览器发送新访问请求,其中,新访问请求包括URL访问信息。
步骤S605,检测到缓存区中的内容为空时,则查询并获取URL访问信息中的域名。
步骤S606,根据URL访问信息中的域名获取对应的服务器地址。
步骤S607,浏览器通过服务器地址访问新服务器,获取到对应的数据资源。
本申请上述实施例三所包括的步骤S604至步骤S607所实现的方案,与实施例二中步骤S503至步骤S506所提供的方案相同,应用的场景也可以相同。当然,需要注意的是,本实施例三的上述方案可以不限于上述实施例二的内容和场景。
需要详细说明的是,本申请客户端的浏览器在步骤S601,接收服务器响应访问请求而返回的清空响应信息之前,客户端可以先设置访问请求的包头信息,该包头信息至少包括:自定义的清除字段、缓存更新时间字段、缓存控制字段和缓存编译字段,在接收浏览器异步发送的访问请求之前,方法还包括:对应不同的浏览器来设置访问请求的包头信息,且设置访问请求的包体为空,其中,
当浏览器为IE浏览器时,设置清除字段为YES,设置缓存更新时间字段为0,设置缓存控制字段为不缓存,并设置缓存编译字段为不缓存;
当浏览器为Firefox浏览器时,设置清除字段为YES,设置缓存更新时间字段为0,不设置缓存控制字段和缓存编译字段;
当浏览器为Opera浏览器时,设置清除字段为YES,设置缓存更新时间字段为0,设置缓存控制字段为不缓存,并设置缓存编译字段为不缓存;
当浏览器为Chrome浏览器时,设置清除字段为YES,设置缓存控制字段为不缓存,并设置缓存编译字段为不缓存,不设置缓存更新时间字段。
需要详细说明的是,上述异步访问信息的包头信息通过创建一个xmlhttp对象来实现,具体的,需要创建并运行用于发送异步访问请求的运行脚本,例如,可以在浏览器中用JavaScript脚本来创建一个xmlhttp对象,客户端浏览器使用xmlhttp对象来发出访问请求,可以十分方便的和服务器交换数据。
本申请上述方案可以基于xmlhttp对象来实现,即在浏览器中调用并运行xmlhttp对象之后,客户端启动通知服务器需要进行清缓存操作。
本申请实施例中所创建的xmlhttp对象可以针对不同的浏览器具有不同的创建方式,例如,在IE浏览器中,可以使用ActiveXObject("Msxml2.XMLHTTP")或ActiveXObject("Microsoft.XMLHTTP")来创建,而在其他现代浏览器中,可以使用newXMLHttpRequest()进行创建。
需要说明的是,上述实施例三中创建的一个xmlhttp对象与所述实施例二中创建的xmlhttp对象的内容、获取方式、示例以及应用场景等内容相同,但不限于实施例二所公开的内容。
同样的,实施例三中所提供的异步访问请求中设置的字段及表现形式以及获取方式作出了限定,上述异步访问请求中除了需要携带上述消息头字段以外,该异步访问请求还可以携带其他字段,例如,Accept字段、Accept-Charset字段、Accept-Encoding字段、Accept-Language字段、Host字段、Referer字段、User-Agent字段、Cookie字段、Connection字段、Date字段等。
其中,Accept:用于高速服务器,客户机支持的数据类型;Accept-Charset:用于告诉服务器,客户机采用的编码格式;Accept-Encoding:用于告诉服务器,客户机支持的数据压缩格式;Accept-Language:客户机的语言环境;Host:客户机通过这个头高速服务器,想访问的主机名;Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的(防盗链);User-Agent:客户机通过这个头告诉服务器,客户机的软件环境;Cookie:客户机通过这个头可以向服务器带数据;Connection:处理完这次请求后是否断开连接还是继续保持连接;Date:当前时间值。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
实施例4
图4是根据本发明实施例四的浏览器中清除缓存文件的装置结构示意图。
根据本发明实施例,还提供了一种用于对应于实施上述方法实施例二的装置,如图4所示,该装置可以应用在客户端上,下面从客户端运行上述装置的角度对本申请的实施过程进行详细描述。
该装置可以包括:发送模块10、接收模块30和清除模块50。
其中,发送模块10,用于浏览器异步发送访问请求给服务器。
接收模块30,用于接收服务器响应访问请求而返回的清空响应信息,其中,在服务器检测到访问请求的包头信息中包含自定义的清除字段的情况下,返回清空响应信息。
清除模块50,用于将清空响应信息中的包体信息替换浏览器的缓存区中已经保存的数据资源。优选地,在替换浏览器的缓存中已经保存的数据资源的同时,浏览器不缓存清空响应信息中的包体信息。
本申请上述实施例四中,通过发送模块10在浏览器发送的异步访问请求的包头中自定义一个清除字段,来使得服务器通过接收模块30接收到异步访问请求之后,如果检测到异步访问请求的包头里的清除字段,就确定了需要返回给客户端浏览器的内容,即对应该异步访问请求会返回一个清空响应信息,清除模块50将该清空响应信息的包体信息替换掉原来缓存中存储的数据资源通过本发明实施例所提供的方案,比较现有技术不需要重新下载整个访问文件,因此,在客户端的浏览器下次发出访问请求时,浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能,进而解决了相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
容易注意到,在替换浏览器的缓存中已经保存的数据资源的同时,如果浏览器不缓存清空响应信息中的包体信息,可以获知,由于浏览器不缓存清空响应信息中的包体信息,因此,通过本发明实施例所提供的方案,缓存中的内容会变成空值,比较现有技术不需要重新下载整个访问文件,使用了空文件来代替,因此,在客户端的浏览器下次发出访问请求时,由于缓存区中的内容为空,从而使得浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,而且由于用于清空缓存区的响应信息的包体为空值,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
本申请上述实施例所提供的装置可以在客户端上运行,优选地,可以通过在异步的访问请求中添加自定义字段,从而使得服务器返回一个包体信息为空值的响应信息,实现了对客户端本地缓存的数据资源的清除,上述方案不需要重新下载整个数据资源对应的文件,而使用了空文件代替客户端中以及缓存的数据,使得浏览器访问文件时无法从本地缓存读取到资源,从而需要直接访问服务器,从而使得在服务器端更新了数据资源之后,客户端可以根据需要快速且直接的读取到更新的数据。
由上可知,本申请上述实施例中服务器2返回的清空响应信息的包头信息不仅可以为空值,也可以不为空值(比如返回一个json数据{em:0}),但由于浏览器不缓存清空响应信息中的包体信息,因此,无论包体信息包含任意内容,浏览器的缓存都会被清空,而返回的json数据{em:0}可以用来通知浏览器已清空缓存。清空响应信息的包体信息为空时可以最大限度的节省带宽。
具体的,服务器在接收到该装置异步发送的访问请求时,会检查包头是否含有清除字段NohostCleanCache,优选地,在检查到设置有该字段,且该字段的值为Yes时,服务器可以返回一个包体为空的响应,来清空客户端浏览器中缓冲区的内容。此时如果客户端的浏览器再发出访问请求时,例如访问http://qq.com/foo.css,不会从缓存区中读取foo.css文件,会直接访问服务器来读取foo.css文件。
优选地,当清空响应信息中的包体信息为空值时,上述实施例四中的清除模块50可以包括:提取模块501,用于提取清空响应信息中包体信息的空值;覆盖模块502,用于将空值覆盖浏览器的缓存区中已经保存的数据资源,使得浏览器的缓存区被清空。
具体的,上述提取模块501和覆盖模块502对应于实施例二中的步骤S501和步骤S502,上述模块作为装置的一部分可以运行在客户端中。可以通过软件实现,也可以通过硬件实现。
优选地,上述实施例四中的一种可选实施例中,清空响应信息中的包头信息至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,缓存控制字段设置为不缓存,缓存时间字段设置为-1或0,缓存编译字段设置为不缓存。
优选地,上述实施例四中的另外一种可选示例,清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。
本实施例四中涉及到的清空响应信息的设置内容、获取方式,以及该清空响应信息的应用示例及各种优选示例,与上述实施例二所提供的示例相同,但需要明确的是,本实施例四不局限于上述实施例二所提供的方案。
优选地,在上述各个实施例中,服务器接收到异步访问请求之后,除了检查到该异步访问请求的消息头中含有NohostCleanCache字段,才会返回清空响应信息,更进一步的,还可以检查该字段的值是否设置为YES,如果为YES才会返回包体为空的响应信息。
需要进一步说明的是,上述实施例四中的装置还可以包括:上述发送模块,还用于浏览器发送新访问请求,其中,新访问请求包括URL访问信息;检测模块,用于检测到缓存区中的内容为空,则查询并获取URL访问信息中的域名;获取模块,用于根据URL访问信息中的域名获取对应的服务器地址;访问模块,用于浏览器通过服务器地址访问新服务器,获取到对应的数据资源。
上述请求发送模块、检测模块、获取模块和访问模块分别对应上述实施例二中的步骤S503至步骤506所实现的方法,上述四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例二所公开的内容。上述发送模块、检测模块、获取模块和访问模块运行在计算机终端,可以通过软件或硬件实现。
需要详细说明的是,本申请客户端的浏览器在请求发送模块执行异步发送访问请求之前,需要创建并运行用于发送异步访问请求的运行脚本,例如,可以在浏览器中用JavaScript脚本来创建一个xmlhttp对象,客户端浏览器使用xmlhttp对象来发出访问请求,可以十分方便的和服务器交换数据。
本申请上述方案可以基于xmlhttp对象来实现,即在浏览器中调用并运行xmlhttp对象之后,客户端启动通知服务器需要进行清缓存操作。
本申请实施例中所创建的xmlhttp对象可以针对不同的浏览器具有不同的创建方式,例如,在IE浏览器中,可以使用ActiveXObject("Msxml2.XMLHTTP")或ActiveXObject("Microsoft.XMLHTTP")来创建,而在其他现代浏览器中,可以使用newXMLHttpRequest()进行创建。
优选地,本申请上述实施例中,需要给创建的xmlhttp对象设置若干字段,然后将设置好字段的xmlhttp对象作为异步访问请求的内容发送给服务器,请求对应的数据文件。在接收浏览器异步发送的访问请求之前,上述装置还可以包括:存储模块,用于保存对应不同的浏览器所设置的访问请求的包头信息,且设置访问请求的包体为空。具体的,该异步发送的访问请求的包头信息至少可以包括如下字段:自定义的清除字段(NohostCleanCache)、缓存更新时间字段(If-Modified-Since)、缓存控制字段(Cache-Control)和缓存编译字段(Pragma),这些字段保存在客户端的存储器中,可以是存储器的缓存区中,而且对应不同的浏览器所设置的访问请求的包头信息不同,但该异步访问请求的包体为空值,具体的设置内容如下:
当浏览器为IE浏览器时,需要设置4个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,缓存控制字段Cache-Control为不缓存(即为no-cache,no-store),缓存编译字段Pragma为不缓存(即为no-cache)。
当浏览器为Firefox浏览器时,需要设置2个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,不需要设置缓存控制字段Cache-Control和缓存编译字段Pragma。
当浏览器为Opera浏览器时,需要设置4个字段:设置清除字段NohostCleanCache为YES,缓存更新时间字段If-Modified-Since为0,缓存控制字段Cache-Control为不缓存(即为no-cache,no-store),缓存编译字段Pragma为不缓存(即为no-cache);
当浏览器为Chrome浏览器时,需要设置3个字段:设置清除字段NohostCleanCache为YES,缓存控制字段Cache-Control为不缓存(即为no-cache),缓存编译字段Pragma为不缓存(即为no-cache),不需要设置缓存更新时间字段If-Modified-Since。
NohostCleanCache字段于自定义字段,表中横线代表该字段没有设置对应的数据。且除了Firefox是使用POST方式发送请求外,其他浏览器都使用GET方式发送请求。
需要说明的是,上述实施例四中创建的一个xmlhttp对象与所述实施例二中创建的xmlhttp对象的内容、获取方式、示例以及应用场景等内容相同,但不限于实施例二所公开的内容。
实施例5
图5是根据本发明实施例五的浏览器中清除缓存文件的装置结构示意图。
根据本发明实施例,还提供了一种用于对应于实施上述方法实施例三的装置,如图5所示,该装置可以应用在服务器端上,下面从客户端运行上述装置的角度对本申请的实施过程进行详细描述。
该装置可以包括:接收模块20、检测模块40和返回模块60。
其中,接收模块20,用于接收客户端的浏览器异步发送的访问请求;检测模块40,用于检测访问请求的包头信息中是否包含自定义的清除字段;返回模块60,用于在检测到清除字段的情况下,返回清空响应信息,其中,清空响应信息用于替换浏览器的缓存中已经保存的数据资源。优选地,在替换浏览器的缓存中已经保存的数据资源的同时,浏览器不缓存清空响应信息中的包体信息。
本申请上述实施例五中,在接收模块20接收到异步访问请求之后,可以通过检测模块40对接收到的异步访问请求的包头进行检测,来确定是否需要返回包头为空的清空响应信息,如果检测到异步访问请求的包头里的清除字段,就确定了需要返回给客户端浏览器的内容,即对应该异步访问请求会通过返回模块60来返回给客户端一个清空响应信息,该清空响应信息的包体信息会替换掉原来缓存中存储的数据资源。通过本发明实施例所提供的方案,比较现有技术不需要重新下载整个访问文件,因此,在客户端的浏览器下次发出访问请求时,浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能,进而解决了相关技术中现有的清除缓存的方法在处理大数量文件时,会导致访问效率低且降低浏览器性能的技术问题。
上述清除字段是客户端自定义的字段,容易注意到,在替换浏览器的缓存中已经保存的数据资源的同时,如果浏览器不缓存清空响应信息中的包体信息,可以获知,由于浏览器不缓存清空响应信息中的包体信息,因此,通过本发明实施例所提供的方案,运行在服务器上的上述各个模块,可以根据清除字段而返回的清空响应信息会将缓存中的内容变成空值,比较现有技术不需要重新下载整个访问文件,使用了空文件来代替,因此,由于服务器使得缓存区中的内容为空,从而使得浏览器需要重新连接服务器来获取数据资源,这样不仅实现了浏览器可以根据需要重新访问服务器来获取资源,保证可以通过自主控制缓存来及时获取服务器上更新的数据资源,而且由于用于清空缓存区的响应信息的包体为空值,使得浏览器可以更加灵活的处理缓存数据,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
本申请上述实施例五所提供的步骤S20至步骤S60可以在服务器上运行,优选地,可以服务器通过添加了自定义字段的异步访问请求来返回一个包体信息为空值的响应信息,实现了对浏览器本地缓存的数据资源的清除,上述方案不需要重新下载整个数据资源对应的文件,而使用了空文件代替客户端中以及缓存的数据,使得浏览器访问文件时无法从本地缓存读取到资源,从而需要直接访问服务器,从而使得在服务器端更新了数据资源之后,客户端可以根据需要快速且直接的读取到更新的数据。
由上可知,本申请上述实施例中服务器2返回的清空响应信息的包头信息不仅可以为空值,也可以不为空值(比如返回一个json数据{em:0}),但由于浏览器不缓存清空响应信息中的包体信息,因此,无论包体信息包含任意内容,浏览器的缓存都会被清空,而返回的json数据{em:0}可以用来通知浏览器已清空缓存。清空响应信息的包体信息为空时可以最大限度的节省带宽。
具体的,服务器在接收到该异步发送的访问请求时,会检查包头是否含有清除字段NohostCleanCache,优选地,在检查到设置有该字段,且该字段的值为Yes时,服务器可以返回一个包体为空的响应,来清空客户端浏览器中缓冲区的内容。此时如果客户端的浏览器再发出访问请求时,例如访问http://qq.com/foo.css,不会从缓存区中读取foo.css文件,会直接访问服务器来读取foo.css文件。
优选地,本申请上述实施例四中,当清空响应信息中的包体信息为空值时,在服务器上的返回模块60实现返回清空响应信息给客户端之后,上述装置还可以包括如下模块:接收响应信息模块,用于接收服务器响应访问请求而返回的清空响应信息;提取响应信息模块,用于提取清空响应信息中包体信息的空值;覆盖缓存模块,用于将空值覆盖浏览器的缓存区中已经保存的数据资源,使得浏览器的缓存区被清空。
具体的,上述接收响应信息模块、提取响应信息模块和覆盖缓存模块对应于实施例三中的步骤S601和步骤S603,上述模块作为装置的一部分可以运行在该服务器所对应的客户端中。可以通过软件实现,也可以通过硬件实现。
本申请上述实施例五中,一种可选的方案中,可以将清空响应信息中的包头信息设置为至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,缓存控制字段设置为不缓存,缓存时间字段设置为-1或0,缓存编译字段设置为不缓存。
在另外一种可选的方案中,清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。
由上可知,本实施例五中涉及到的清空响应信息的设置内容、获取方式,以及该清空响应信息的应用示例及各种优选示例,与上述实施例三所提供的示例相同,但需要明确的是,本实施例五不局限于上述实施例三所提供的方案。
同样的,上述实施例五中并不意味着本申请对上述返回的清空响应信息的内容以及获取方式作出了限定,上述清空响应信息中除了需要携带上述与缓存相关的消息头字段以外,该异步访问请求还可以携带其他字段,例如,Location字段、Server字段、Content-Encoding字段、Content-Length字段、Content-Type字段、Last-Modified字段、Refresh字段、Content-Disposition字段、Transfer-Encoding字段等。
优选地,在上述各个实施例中,服务器接收到异步访问请求之后,除了检查到该异步访问请求的消息头中含有NohostCleanCache字段,才会返回清空响应信息,更进一步的,还可以检查该字段的值是否设置为YES,如果为YES才会返回包体为空的响应信息。
需要进一步说明的是,在本申请上述实施例五中的异步发送的访问请求可以包括一个URL访问信息,其中,在执行浏览器的缓存区被清空之后,上述实施例五中的装置还可以包括:
请求发送模块,用于浏览器发送新访问请求,其中,新访问请求包括URL访问信息;检测模块,检测到缓存区中的内容为空,则查询并获取URL访问信息中的域名;获取模块,根据URL访问信息中的域名获取对应的服务器地址;访问模块,浏览器通过服务器地址访问新服务器,获取到对应的数据资源。
上述请求发送模块、检测模块、获取模块和访问模块分别对应上述实施例三中的步骤S604至步骤607所实现的方法,上述四个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例三所公开的内容。上述请求发送模块、检测模块、获取模块和访问模块运行在计算机终端,可以通过软件或硬件实现。
另外,本申请上述实施例五所提供的各个模块与实施例四所提供的方案也相同,应用的场景也可以相同。当然,需要注意的是,本实施例五的上述方案可以不限于上述实施例四的内容和场景。
需要详细说明的是,需要给创建的xmlhttp对象设置若干字段,然后将设置好字段的xmlhttp对象作为异步访问请求的内容发送给服务器,请求对应的数据文件。在接收浏览器异步发送的访问请求之前,上述装置还可以包括:存储模块,用于保存对应不同的浏览器所设置的访问请求的包头信息,且设置访问请求的包体为空。具体的,该异步发送的访问请求的包头信息至少可以包括如下字段:自定义的清除字段(NohostCleanCache)、缓存更新时间字段(If-Modified-Since)、缓存控制字段(Cache-Control)和缓存编译字段(Pragma),这些字段保存在客户端的存储器中,可以是存储器的缓存区中,而且对应不同的浏览器所设置的访问请求的包头信息不同,但该异步访问请求的包体为空值,具体的设置内容如下:
当浏览器为IE浏览器时,设置清除字段为YES,设置缓存更新时间字段为0,设置缓存控制字段为不缓存,并设置缓存编译字段为不缓存;
当浏览器为Firefox浏览器时,设置清除字段为YES,设置缓存更新时间字段为0,不设置缓存控制字段和缓存编译字段;
当浏览器为Opera浏览器时,设置清除字段为YES,设置缓存更新时间字段为0,设置缓存控制字段为不缓存,并设置缓存编译字段为不缓存;
当浏览器为Chrome浏览器时,设置清除字段为YES,设置缓存控制字段为不缓存,并设置缓存编译字段为不缓存,不设置缓存更新时间字段。
进一步详细说明的是,由于上述异步访问信息的包头信息通过创建一个xmlhttp对象来实现,则需要创建并运行用于发送异步访问请求的运行脚本,例如,可以在浏览器中用JavaScript脚本来创建一个xmlhttp对象,客户端浏览器使用xmlhttp对象来发出访问请求,可以十分方便的和服务器交换数据。
本申请上述方案可以基于xmlhttp对象来实现,即在浏览器中调用并运行xmlhttp对象之后,客户端启动通知服务器需要进行清缓存操作。
本申请实施例中所创建的xmlhttp对象可以针对不同的浏览器具有不同的创建方式,例如,在IE浏览器中,可以使用ActiveXObject("Msxml2.XMLHTTP")或ActiveXObject("Microsoft.XMLHTTP")来创建,而在其他现代浏览器中,可以使用newXMLHttpRequest()进行创建。
需要说明的是,上述实施例五中创建的一个xmlhttp对象与所述实施例三中创建的xmlhttp对象的内容、获取方式、示例以及应用场景等内容相同,但不限于实施例三所公开的内容。
从以上的描述中,可以看出,本发明实现了如下技术效果:通过本发明实施例所提供的方案,缓存中的内容会变成空值,比较现有技术不需要重新下载整个访问文件,使用了空文件来代替,因此,在客户端的浏览器下次发出访问请求时,由于缓存区中的内容为空,从而使得浏览器需要重新连接服务器来获取数据资源,这样不仅实现了客户端浏览器可以根据需要重新访问服务器来获取资源,保证可以及时获取服务器上更新的数据资源,而且由于用于清空缓存区的响应信息的包体为空值,从而使得浏览器处理数据的流量大大减少,避免了浪费时间,提高了访问效率和浏览器的性能。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (20)
1.一种浏览器中清除缓存文件的方法,其特征在于,包括:
浏览器异步发送访问请求给服务器;
接收所述服务器响应所述访问请求而返回的清空响应信息,其中,当所述服务器检测到所述访问请求的包头信息中包含自定义的清除字段时,返回清空响应信息;
使用所述清空响应信息中的包体信息替换所述浏览器的缓存区中已经保存的数据资源。
2.根据权利要求1所述的方法,其特征在于,当所述清空响应信息中的包体信息为空值时,使用所述清空响应信息中的包体信息替换所述浏览器的缓存区中已经保存的数据资源的步骤包括:
提取所述清空响应信息中包体信息的空值;
将所述空值覆盖所述浏览器的缓存区中已经保存的数据资源,使得所述浏览器的缓存区被清空。
3.根据权利要求1或2所述的方法,其特征在于,所述清空响应信息中的包头信息至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,所述缓存控制字段设置为不缓存,所述缓存时间字段设置为-1或0,所述缓存编译字段设置为不缓存。
4.根据权利要求1或2所述的方法,其特征在于,所述清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。
5.根据权利要求1或2所述的方法,其特征在于,所述访问请求包括一个URL访问信息,其中,在使用所述清空响应信息中的包体信息替换所述浏览器的缓存区中已经保存的数据资源之后,所述方法还包括:
所述浏览器发送新访问请求,其中,所述新访问请求包括所述URL访问信息;
当检测到所述缓存区中的内容为空时,查询并获取所述URL访问信息中的域名;
根据所述URL访问信息中的域名获取对应的服务器地址;
所述浏览器通过所述服务器地址访问新服务器,获取到对应的数据资源。
6.根据权利要求1所述的方法,其特征在于,所述访问请求的包头信息至少包括:自定义的所述清除字段、缓存更新时间字段、缓存控制字段和缓存编译字段,在接收浏览器异步发送的访问请求之前,所述方法还包括:对应不同的浏览器来设置所述访问请求的包头信息,且设置所述访问请求的包体为空,其中,
当所述浏览器为IE浏览器时,设置所述清除字段为YES,设置所述缓存更新时间字段为0,设置所述缓存控制字段为不缓存,并设置所述缓存编译字段为不缓存;
当所述浏览器为Firefox浏览器时,设置所述清除字段为YES,设置所述缓存更新时间字段为0,不设置所述缓存控制字段和所述缓存编译字段;
当所述浏览器为Opera浏览器时,设置所述清除字段为YES,设置所述缓存更新时间字段为0,设置所述缓存控制字段为不缓存,并设置所述缓存编译字段为不缓存;
当所述浏览器为Chrome浏览器时,设置所述清除字段为YES,设置所述缓存控制字段为不缓存,并设置所述缓存编译字段为不缓存,不设置所述缓存更新时间字段。
7.一种浏览器中清除缓存文件的系统,其特征在于,包括:
客户端,用于浏览器异步发送访问请求;
服务器,与所述客户端建立通讯关系,用于当检测到所述访问请求的包头信息中包含自定义的清除字段时,返回清空响应信息给所述客户端;
其中,客户端使用所述清空响应信息中的包体信息替换所述浏览器的缓存中已经保存的数据资源。
8.根据权利要求7所述的系统,其特征在于,当所述清空响应信息中的包体信息为空值时,所述客户端包括:
接收装置,用于接收所述服务器响应所述访问请求而返回的清空响应信息;
处理器,用于提取所述清空响应信息中包体信息的空值,并将所述空值覆盖所述浏览器的缓存区中已经保存的数据资源,使得所述浏览器的缓存区被清空。
9.根据权利要求7或8所述的系统,其特征在于,所述清空响应信息中的包头信息至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,所述缓存控制字段设置为不缓存,所述缓存时间字段设置为-1或0,所述缓存编译字段设置为不缓存。
10.根据权利要求7或8所述的系统,其特征在于,所述清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。
11.根据权利要求7或8所述的系统,其特征在于,所述访问请求包括一个URL访问信息,其中,所述客户端还包括:
发送装置,用于所述浏览器发送新访问请求,其中,所述新访问请求包括所述URL访问信息;
所述处理器,还用于当检测到所述缓存区中的内容为空时,查询并获取所述URL访问信息中的域名,并根据所述URL访问信息中的域名对应的服务器地址访问新服务器,获取到对应的数据资源。
12.根据权利要求7所述的系统,其特征在于,所述访问请求的包头信息至少包括:自定义的所述清除字段、缓存更新时间字段、缓存控制字段和缓存编译字段,其中,所述客户端还包括:存储器,用于保存对应不同的浏览器所设置的访问请求的包头信息,且所述访问请求的包体为空,其中,
当所述浏览器为IE浏览器时,所述清除字段为YES,所述缓存更新时间字段为0,所述缓存控制字段为不缓存,所述缓存编译字段为不缓存;
当所述浏览器为Firefox浏览器时,所述清除字段为YES,所述缓存更新时间字段为0,不保存所述缓存控制字段和所述缓存编译字段;
当所述浏览器为Opera浏览器时,所述清除字段为YES,所述缓存更新时间字段为0,所述缓存控制字段为不缓存,所述缓存编译字段为不缓存;
当所述浏览器为Chrome浏览器时,所述清除字段为YES,所述缓存控制字段为不缓存,所述缓存编译字段为不缓存,不保存所述缓存更新时间字段。
13.一种浏览器中清除缓存文件的装置,其特征在于,包括:
发送模块,用于浏览器异步发送访问请求给服务器;
接收模块,用于接收所述服务器响应所述访问请求而返回的清空响应信息,其中,时所述服务器检测到所述访问请求的包头信息中包含自定义的清除字段时,返回清空响应信息;
清除模块,用于将清空响应信息中的包体信息替换所述浏览器的缓存区中已经保存的数据资源。
14.根据权利要求13所述的装置,其特征在于,当所述清空响应信息中的包体信息为空值时,所述清除模块包括:
提取模块,用于提取所述清空响应信息中包体信息的空值;
覆盖模块,用于将所述空值覆盖所述浏览器的缓存区中已经保存的数据资源,使得所述浏览器的缓存区被清空。
15.根据权利要求13或14所述的装置,其特征在于,所述清空响应信息中的包头信息至少包括以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段,其中,所述缓存控制字段设置为不缓存,所述缓存时间字段设置为-1或0,所述缓存编译字段设置为不缓存。
16.根据权利要求13或14所述的装置,其特征在于,所述清空响应信息中的包头信息中不设置以下任意一个或多个字段信息:缓存控制字段、缓存时间字段和缓存编译字段。
17.根据权利要求13或14所述的装置,其特征在于,所述访问请求包括一个URL访问信息,其中,所述装置还包括:
所述发送模块,还用于所述浏览器发送新访问请求,其中,所述新访问请求包括所述URL访问信息;
检测模块,用于当检测到所述缓存区中的内容为空时,查询并获取所述URL访问信息中的域名;
获取模块,用于根据所述URL访问信息中的域名获取对应的服务器地址;
访问模块,用于所述浏览器通过所述服务器地址访问新服务器,获取到对应的数据资源。
18.根据权利要求13所述的装置,其特征在于,所述访问请求的包头信息至少包括:自定义的所述清除字段、缓存更新时间字段、缓存控制字段和缓存编译字段,其中,所述装置还包括:存储模块,用于保存对应不同的浏览器所设置的访问请求的包头信息,且设置所述访问请求的包体为空,其中,
当所述浏览器为IE浏览器时,所述清除字段为YES,所述缓存更新时间字段为0,所述缓存控制字段为不缓存,所述缓存编译字段为不缓存;
当所述浏览器为Firefox浏览器时,所述清除字段为YES,所述缓存更新时间字段为0,不保存所述缓存控制字段和所述缓存编译字段;
当所述浏览器为Opera浏览器时,所述清除字段为YES,所述缓存更新时间字段为0,所述缓存控制字段为不缓存,所述缓存编译字段为不缓存;
当所述浏览器为Chrome浏览器时,所述清除字段为YES,所述缓存控制字段为不缓存,所述缓存编译字段为不缓存,不保存所述缓存更新时间字段。
19.一种浏览器中清除缓存文件的方法,其特征在于,包括:
接收客户端的浏览器异步发送的访问请求;
检测所述访问请求的包头信息中是否包含自定义的清除字段;
当检测到所述清除字段时,返回清空响应信息,其中,所述清空响应信息用于替换所述浏览器的缓存中已经保存的数据资源。
20.一种浏览器中清除缓存文件的装置,其特征在于,包括:
接收模块,用于接收客户端的浏览器异步发送的访问请求;
检测模块,用于检测所述访问请求的包头信息中是否包含自定义的清除字段;
返回模块,用于当检测到所述清除字段时,返回清空响应信息,其中,所述清空响应信息用于替换所述浏览器的缓存中已经保存的数据资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310538458.8A CN104615597B (zh) | 2013-11-04 | 2013-11-04 | 浏览器中清除缓存文件的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310538458.8A CN104615597B (zh) | 2013-11-04 | 2013-11-04 | 浏览器中清除缓存文件的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104615597A true CN104615597A (zh) | 2015-05-13 |
CN104615597B CN104615597B (zh) | 2019-04-12 |
Family
ID=53150048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310538458.8A Active CN104615597B (zh) | 2013-11-04 | 2013-11-04 | 浏览器中清除缓存文件的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104615597B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933420A (zh) * | 2016-04-27 | 2016-09-07 | 江苏物联网研究发展中心 | 利用http协议实现客户端向服务端文件上传的方法及系统 |
CN106777033A (zh) * | 2016-12-09 | 2017-05-31 | 北京齐尔布莱特科技有限公司 | Squid按照目录格式清除缓存文件的方法 |
CN108259198A (zh) * | 2016-12-28 | 2018-07-06 | 中国移动通信集团辽宁有限公司 | 一种域名缓存命中率的预判方法、装置及设备 |
CN108388657A (zh) * | 2018-03-06 | 2018-08-10 | 五八有限公司 | cookie存储方法、装置、设备及可读存储介质 |
CN113050972A (zh) * | 2021-04-30 | 2021-06-29 | 中国银行股份有限公司 | 一种系统升级方法、装置、设备及存储介质 |
CN114301607A (zh) * | 2021-12-30 | 2022-04-08 | 山石网科通信技术股份有限公司 | 浏览器的证书清除方法、装置、存储介质及处理器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094662A (en) * | 1998-04-30 | 2000-07-25 | Xerox Corporation | Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions |
CN101807193A (zh) * | 2009-12-31 | 2010-08-18 | 优视科技有限公司 | 一种用于移动通讯设备终端的浏览方法 |
CN101957842A (zh) * | 2010-09-13 | 2011-01-26 | 青岛海信移动通信技术股份有限公司 | 一种基于WebKit浏览器的网页缓存控制方法、装置及系统 |
CN102109989A (zh) * | 2009-12-29 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种控制浏览器缓存的方法、装置和系统 |
-
2013
- 2013-11-04 CN CN201310538458.8A patent/CN104615597B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094662A (en) * | 1998-04-30 | 2000-07-25 | Xerox Corporation | Apparatus and method for loading and reloading HTML pages having cacheable and non-cacheable portions |
CN102109989A (zh) * | 2009-12-29 | 2011-06-29 | 阿里巴巴集团控股有限公司 | 一种控制浏览器缓存的方法、装置和系统 |
CN101807193A (zh) * | 2009-12-31 | 2010-08-18 | 优视科技有限公司 | 一种用于移动通讯设备终端的浏览方法 |
CN101957842A (zh) * | 2010-09-13 | 2011-01-26 | 青岛海信移动通信技术股份有限公司 | 一种基于WebKit浏览器的网页缓存控制方法、装置及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933420A (zh) * | 2016-04-27 | 2016-09-07 | 江苏物联网研究发展中心 | 利用http协议实现客户端向服务端文件上传的方法及系统 |
CN106777033A (zh) * | 2016-12-09 | 2017-05-31 | 北京齐尔布莱特科技有限公司 | Squid按照目录格式清除缓存文件的方法 |
CN106777033B (zh) * | 2016-12-09 | 2019-06-25 | 北京齐尔布莱特科技有限公司 | Squid按照目录格式清除缓存文件的方法 |
CN108259198A (zh) * | 2016-12-28 | 2018-07-06 | 中国移动通信集团辽宁有限公司 | 一种域名缓存命中率的预判方法、装置及设备 |
CN108259198B (zh) * | 2016-12-28 | 2021-08-06 | 中国移动通信集团辽宁有限公司 | 一种域名缓存命中率的预判方法、装置及设备 |
CN108388657A (zh) * | 2018-03-06 | 2018-08-10 | 五八有限公司 | cookie存储方法、装置、设备及可读存储介质 |
CN108388657B (zh) * | 2018-03-06 | 2022-04-05 | 五八有限公司 | cookie存储方法、装置、设备及可读存储介质 |
CN113050972A (zh) * | 2021-04-30 | 2021-06-29 | 中国银行股份有限公司 | 一种系统升级方法、装置、设备及存储介质 |
CN114301607A (zh) * | 2021-12-30 | 2022-04-08 | 山石网科通信技术股份有限公司 | 浏览器的证书清除方法、装置、存储介质及处理器 |
CN114301607B (zh) * | 2021-12-30 | 2024-02-06 | 山石网科通信技术股份有限公司 | 浏览器的证书清除方法、装置、存储介质及处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN104615597B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102438045B (zh) | Web页面的预取方法、系统以及访问web页面的方法 | |
US11477298B2 (en) | Offline client replay and sync | |
US8533310B2 (en) | Method and apparatus for acceleration by prefetching associated objects | |
CN105930528B (zh) | 一种网页缓存的方法及服务器 | |
CN101287013B (zh) | 一种更新Web页面的方法和Web代理设备 | |
CN107391664A (zh) | 基于web的页面数据处理方法和系统 | |
CN104615597A (zh) | 浏览器中清除缓存文件的方法、装置和系统 | |
CN104798071A (zh) | 在雾计算架构中使用边缘服务器改善网站性能 | |
CN103455478A (zh) | 加速网页访问的方法和装置 | |
CN103942225A (zh) | 一种混合型应用客户端的资源调用方法、客户端及系统 | |
CN101159762B (zh) | 加速网页内容下载的方法及装置 | |
KR20160135250A (ko) | 연결 해제의 기간을 위한 애플리케이션 데이터의 프리페치 | |
CN106776761A (zh) | 一种移动浏览器渲染网页的方法及装置 | |
CN109634753B (zh) | 切换浏览器内核的数据处理方法、装置、终端和存储介质 | |
CN103516785A (zh) | 网页代理系统及其通信方法 | |
CN104378399A (zh) | 一种数据推送方法、平台服务器、客户端以及系统 | |
CN107463657B (zh) | 文件操作方法及终端 | |
Pande et al. | Enhanced web application and browsing performance through service-worker infusion framework | |
CN104572777A (zh) | 基于UIWebView组件的网页加载方法及装置 | |
WO2009009123A2 (en) | Method for media discovery | |
US10404774B2 (en) | Mobile device and method for controlling transmission to web server in mobile device | |
CN108345606A (zh) | 网页资源的获取方法和装置 | |
CN108874472B (zh) | 一种用户头像的优化显示方法及系统 | |
CN105550179A (zh) | 一种网页收藏方法和浏览器插件 | |
CN103269353A (zh) | Web缓存回源优化方法及Web缓存系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |