CN116846881A - 一种缓存库文件的更新方法及终端 - Google Patents
一种缓存库文件的更新方法及终端 Download PDFInfo
- Publication number
- CN116846881A CN116846881A CN202210288717.5A CN202210288717A CN116846881A CN 116846881 A CN116846881 A CN 116846881A CN 202210288717 A CN202210288717 A CN 202210288717A CN 116846881 A CN116846881 A CN 116846881A
- Authority
- CN
- China
- Prior art keywords
- file
- terminal
- cache
- cache library
- text
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 119
- 230000004083 survival effect Effects 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims description 69
- 238000012545 processing Methods 0.000 claims description 51
- 238000004590 computer program Methods 0.000 claims description 3
- 239000004973 liquid crystal related substance Substances 0.000 claims 2
- 239000002699 waste material Substances 0.000 abstract description 6
- 230000002452 interceptive effect Effects 0.000 abstract description 3
- 230000003993 interaction Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 8
- 238000009877 rendering Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种缓存库文件的更新方法,用于提高缓存库中文件的有效性并减少网络带宽浪费。本申请实施例方法包括:终端下载并在缓存库中存储第一文件;若所述第一文件的生存时间小于或等于第一阈值,且所述第一文件的文件类型为文本文件,则所述终端更新所述缓存库中的所述第一文件。考虑到文本文件通常作为交互的根资源,且在缓存库中占用的存储资源少,本方法通过选择性针对文本文件进行缓存更新,可保证缓存库中的文本文件处于最新状态,提高文本文件的有效性并减少缓存库中文件全部更新的带宽损失。在此基础上结合对文本文件中包含的引用的预取,可以提高缓存资源预取的准确性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种缓存库文件的更新方法及终端。
背景技术
低交互响应时间对于移动应用程序为用户提供的体验至关重要,缓存是一种减轻网络延迟对应用程序响应性能的负面影响的主流技术。
基于从服务器流传输的超文本传输协议(Hyper Text Transfer Protocol,HTTP)标头,缓存使移动应用程序能够存储文件并消除这些文件的后续网络获取,直至它们更改。现有的缓存实践中要求开发人员为缓存库中的每个文件显式设置生存时间(time tolive,TTL),TTL可指示文件在本地缓存的有效时间。
由于缓存库中每个文件的理想TTL随时间而变化,若设置TTL偏低,将降低应用程序的缓存命中率并增加网络请求负载;若设置TTL偏高,会使得客户端在使用缓存库中的文件时面临版本过时的风险。可见,仅依靠显式设置TTL管理缓存库中的文件无法满足使用需求,如何合理管理缓存库中的文件成为一个亟待解决的问题。
发明内容
本申请提供了一种缓存库文件的更新方法和终端,用于提高缓存库中文件的有效性并减少网络带宽浪费。
本申请的第一方面提供了一种缓存库文件的更新方法,包括:终端下载并在缓存库中存储第一文件;若所述第一文件的生存时间小于或等于第一阈值,且所述第一文件的文件类型为文本文件,则所述终端更新所述缓存库中的所述第一文件。
本申请提供的缓存库文件的更新方法考虑到移动应用程序响应用户交互时,部分文件通常作为交互的根资源且内容包含多个其他文件的引用,这类文件通常为文本文件,本申请实施例中选择针对文本文件进行缓存更新,终端基于用户指令向服务器请求获取第一文件,此外终端将在缓存库中存储第一文件,第一文件对应的TTL记录了该第一文件在缓存库中的有效时间,TTL到期后,第一文件不可用,因此终端可以在TTL小于或等于第一阈值时,对属于文本文件的第一文件进行更新。由于本申请实施例中选择针对文本文件进行缓存更新,可提高缓存库中文件的有效性并减少缓存库中文件全部更新的带宽损失。
在第一方面的一种可能的实现方式中,在所述终端更新所述缓存库中的所述第一文件之前,所述方法还包括:所述终端确定所述第一文件的文件类型为文本文件。
本申请提供的缓存库文件的更新方法,终端需要在更新之前确定缓存库中文件的文件类型是否为文本文件,基于其文件类型确定后续具体更新操作,选择针对文本文件进行缓存更新,可提高缓存库中文件的有效性并减少缓存库中文件全部更新的带宽损失。
在第一方面的一种可能的实现方式中,所述终端确定所述第一文件的文件类型为文本文件,包括:所述终端根据文件类型标识确定所述第一文件的文件类型为文本文件。
本申请提供的缓存库文件的更新方法,终端确定所述第一文件的文件类型为文本文件的方式可能有多种,具体地,由于终端向服务器请求文件时,服务器返回的响应消息的头部字段中携带有文件类型标识,终端可以据此判断请求的文件的文件类型。头部字段中携带的文件类型标识中可能包括文件的类型或子类型,基于类型或子类型都可以对文件的类型进行判定。可选地,终端预设文本文件类型标识集合,若文件的文件类型标识为该类型标识集合中的任意一个,则所述终端确定该文件为文本文件。
在第一方面的一种可能的实现方式中,在所述终端确定第一文件的文件类型为文本文件之后,所述方法还包括:所述终端向所述第一文件对应的服务器发送第一请求消息,所述第一请求消息用于请求最新版本的第一文件;所述终端接收所述第一请求消息的第一响应消息;所述终端更新所述第一文件包括:所述终端根据所述第一响应消息更新所述缓存库中的所述第一文件。
本申请提供的缓存库文件的更新方法,为更新第一文件,终端可以向对应的服务器发送请求消息,请求最新版本的第一文件,需要说明的是,终端可在请求消息中携带该缓存库中第一文件的版本标识,服务器端可基于该版本标识判断该第一文件是否存在更新,并据此返回响应消息。
在第一方面的一种可能的实现方式中,若所述缓存库中的所述第一文件的版本为最新版本,所述第一响应消息中携带所述第一文件的最新生存时间;所述终端根据所述第一响应消息更新所述缓存库中的所述第一文件,包括:所述终端根据所述最新生存时间更新所述缓存库中所述第一文件的生存时间。
本申请提供的缓存库文件的更新方法,若服务器确认缓存库中第一文件的版本标识与服务器端的第一文件的版本标识一致,即第一文件未更改,所述缓存库中的所述第一文件的版本为最新版本,为节省带宽资源,服务器端可以不发送第一文件的内容,仅发送第一文件的最新生存时间。
在第一方面的一种可能的实现方式中,若所述缓存库中的所述第一文件的版本非最新版本,所述第一响应消息中携带第一文件的最新文件内容以及最新生存时间;所述终端根据所述第一请求消息的第一响应消息更新所述第一文件,包括:所述终端根据所述最新文件内容更新所述缓存库中第一文件的内容,并根据所述最新生存时间更新所述缓存库中第一文件的生存时间。
本申请提供的缓存库文件的更新方法,若服务器确认缓存库中第一文件的版本标识与服务器端的第一文件的版本标识不一致,即第一文件已更改,所述缓存库中的所述第一文件的版本非最新版本,服务器端将发送最新版本的第一文件,包括第一文件的内容以及最新生存时间,终端根据所述最新文件内容更新所述缓存库中第一文件的内容,并根据所述最新生存时间更新所述缓存库中第一文件的生存时间。由此,可以保证缓存库中文本文件类型的文件始终为可用的最新版本。
在第一方面的一种可能的实现方式中,所述方法还包括:终端下载并在所述缓存库中存储第二文件;若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则所述终端标记所述第二文件过期。
本申请提供的缓存库文件的更新方法,对于非文本文件类型的第二文件,可以在TTL到期后直接标记为过期以节省缓存空间。
在第一方面的一种可能的实现方式中,所述方法还包括:终端下载并在所述缓存库中存储第二文件;若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则所述终端向所述第二文件对应的服务器发送第二请求消息;所述终端接收所述第二请求消息返回的第二响应消息;若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本非最新版本,则所述终端标记所述缓存库中的所述第二文件过期;若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本为最新版本,则所述终端更新所述缓存库中的所述第二文件的生存时间。
本申请提供的缓存库文件的更新方法,对于非文本文件类型的第二文件,可以在TTL到期后,基于其内容是否更改,即是否为最新版本进行不同处理,若有更改非最新版本,则直接标记为过期以节省重新下载所需的带宽资源并节省缓存空间;若未更改,为最新版本,由于不需要重新下载,可以直接更新TTL,这样可以在减少带宽消耗的同时提升缓存库中文件的命中率。
在第一方面的一种可能的实现方式中,所述第一文件的内容中包括第三文件的统一资源定位符(uniform resource locator,URL),所述方法还包括:所述终端获取所述第一文件的URL集合,所述URL集合包括所述第一文件中引用的文件对应的URL,所述URL集合包括所述第三文件的URL。
本申请提供的缓存库文件的更新方法,考虑到文本文件内容中常包含多个其他文件的引用,可以通过解析第一文件获取第一文件中的URL集合,需要说明的是,URL集合可以是包括第一文件中所有引用的文件对应的URL;或者,URL集合中仅包括第一文件中引用的,且第一文件用于终端显示的界面在渲染过程中所必需的文件对应的URL,而不包括需要用户后续交互触发的引用对应的URL。两种实现方式可以基于终端的存储能力或实际应用场景确定,此处不做限定。
在第一方面的一种可能的实现方式中,所述方法还包括:若所述终端的应用程序加载所述第一文件,则所述终端根据所述URL集合中的所述第三文件的URL缓存所述第三文件。
本申请提供的缓存库文件的更新方法,基于用户交互等原因的触发,当终端的应用程序加载所述第一文件时,终端就可以根据解析第一文件得到的URL集合中的URL获取对应的文件并缓存在缓存库中,以备应用程序的请求,该预取操作可以减少用户的网络等待时延,提升用户体验。
在第一方面的一种可能的实现方式中,所述方法还包括:所述终端在缓存库中查询所述第三文件;若所述终端的缓存库中不存在所述第三文件,则所述终端根据所述第三文件的URL下载并在所述缓存库中存储所述第三文件。
本申请提供的缓存库文件的更新方法,考虑到具体实现过程中,终端缓存库中可能存储了URL集合中的URL对应的文件,因此,可以在请求获取第三文件之前,先在缓存库中进行查询,若缓存库中不存在该第三文件,则进行下载及缓存。相应地,若缓存库中已经存储有第三文件,则无需再次下载。可以节省带宽减少资源浪费。
在第一方面的一种可能的实现方式中,所述方法还包括:若应用程序加载所述第一文件,则所述终端根据所述URL集合在所述缓存库中缓存所述URL集合中每个URL对应的文件。
本申请提供的缓存库文件的更新方法,终端可以在应用程序加载所述第一文件时,提前预取URL集合中所有的URL对应的文件,以备应用程序的请求,这些预取操作可以减少用户的网络等待时延,提升用户体验。
本申请第二方面提供了一种终端,包括:处理模块,用于下载并在缓存库中存储第一文件;所述处理模块,还用于若所述第一文件的生存时间小于或等于第一阈值,且所述第一文件的文件类型为文本文件,则更新所述缓存库中的所述第一文件。
在第二方面的一种可能的实现方式中,所述终端还包括:确定模块,用于在所述终端更新所述缓存库中的所述第一文件之前,确定所述第一文件的文件类型为文本文件。
在第二方面的一种可能的实现方式中,所述确定模块,具体用于:根据文件类型标识确定所述第一文件的文件类型为文本文件。
在第二方面的一种可能的实现方式中,所述终端还包括:收发模块,用于在所述终端确定第一文件的文件类型为文本文件之后,向所述第一文件对应的服务器发送第一请求消息,所述第一请求消息用于请求最新版本的第一文件;所述收发模块,还用于接收所述第一请求消息的第一响应消息;所述处理模块,具体用于:根据所述第一响应消息更新所述缓存库中的所述第一文件。
在第二方面的一种可能的实现方式中,若所述缓存库中的所述第一文件的版本为最新版本,所述第一响应消息中携带所述第一文件的最新生存时间;所述处理模块,具体用于:根据所述最新生存时间更新所述缓存库中所述第一文件的生存时间。
在第二方面的一种可能的实现方式中,若所述缓存库中的所述第一文件的版本非最新版本,所述第一响应消息中携带第一文件的最新文件内容以及最新生存时间;所述处理模块,具体用于:根据所述最新文件内容更新所述缓存库中第一文件的内容,并根据所述最新生存时间更新所述缓存库中第一文件的生存时间。
在第二方面的一种可能的实现方式中,所述处理模块,还用于:下载并在所述缓存库中存储第二文件;若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则标记所述第二文件过期。
在第二方面的一种可能的实现方式中,所述处理模块,还用于:下载并在所述缓存库中存储第二文件;所述终端还包括:收发模块,用于若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则向所述第二文件对应的服务器发送第二请求消息;第二文件若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本非最新版本,所述处理模块,还用于标记所述缓存库中的所述第二文件过期;若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本为最新版本,所述处理模块具体用于更新所述缓存库中的所述第二文件的生存时间。
在第二方面的一种可能的实现方式中,所述第一文件的内容中包括第三文件的URL,所述处理模块,还用于获取所述第一文件的URL集合,所述URL集合包括所述第一文件中引用的文件对应的URL,所述URL集合包括所述第三文件的URL。
在第二方面的一种可能的实现方式中,所述处理模块,还用于:若所述终端的应用程序加载所述第一文件,则根据所述URL集合中的所述第三文件的URL缓存所述第三文件。
在第二方面的一种可能的实现方式中,所述终端还包括:查询模块,用于在缓存库中查询所述第三文件;若所述终端的缓存库中不存在所述第三文件,则所述处理模块根据所述第三文件的URL下载并在所述缓存库中存储所述第三文件。
在第二方面的一种可能的实现方式中,所述处理模块,还用于:若应用程序加载所述第一文件,则根据所述URL集合在所述缓存库中缓存所述URL集合中每个URL对应的文件。
本申请第三方面提供了一种终端,其特征在于,包括:一个或多个处理器和存储器;其中,所述存储器中存储有计算机可读指令;所述一个或多个处理器读取所述计算机可读指令以使所述终端执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请第四方面提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请第五方面提供了一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请第六方面提供了一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行上述任一方面任意可能的实现方式中的方法。可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
其中,第二方面、第三方面、第四方面、第五方面或第六方面以及各实现方式中任一种所带来的技术效果可参见第一方面中相应实现方式所带来的技术效果,此处不再赘述。
本申请提供的缓存库文件的更新方法,在TTL小于或等于第一阈值时,基于第一文件的文件类型为文本文件,选择更新第一文件。考虑到文本文件通常作为交互的根资源,且在缓存库中占用的存储资源少,本方法通过选择性针对文本文件进行缓存更新,可提高缓存库中文件的有效性并减少缓存库中文件全部更新的带宽损失。
本方法对于文本类型的文件可以通过更新不断保存其有效性,提高资源命中率。进一步地,通过解析并获取文本文件内包含的URL,当应用程序加载该文本文件时,预取其中URL对应的文件,可降低移动应用程序的网络延迟,同时避免对于不必要的文件的预取,提高了预取的准确性。
附图说明
图1为本申请应用场景的一个架构图;
图2为本申请缓存库文件的更新方法的一个应用场景的示意图;
图3为本申请实施例中缓存库文件的更新方法的一个实施例示意图;
图4为本申请实施例中缓存库文件的更新方法的另一个实施例示意图;
图5为本申请实施例中缓存库文件的更新方法的另一个实施例示意图;
图6为本申请实施例中终端的一个实施例示意图;
图7为本申请实施例中终端的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种缓存库文件的更新方法,用于提高缓存库中文件的有效性并减少网络带宽浪费。
本申请提供的缓存库文件的更新方法考虑到移动应用程序响应用户交互时,部分文件通常作为交互的根资源且内容包含多个其他文件的引用,这类文件通常为文本文件,本申请实施例中选择针对文本文件进行缓存更新,可提高缓存库中文件的有效性并减少缓存库中文件全部更新的带宽损失。
由于终端向服务器根据请求文件时,服务器返回的响应消息的头部字段中携带有文件类型标识,终端可以据此判断请求的文件的文件类型。示例性地,响应消息的头部字段中携带“Content-Type:text/html;charset=utf-8”的信息,指示“文件类型:类型/子类型;资源编码方式”,终端基于头部字段信息中的文件类型标识判断该文件属于文本文件。在一种可能的实现方式中,终端基于子类型对文件类型进行判断,具体地,终端维护预设的文本文件类型标识集合,若文件的文件类型标识为文本文件类型标识集合中的任意一个标识,则判断该文件为文本文件,否则为非文本文件。本申请中在终端与服务器交互过程中涉及的常见的文本文件包括html,xml,json,css,js,txt等格式,具体类型此处不做限定。若预设的标识集合为html,xml,json,css,js,txt。由于从文件类型标识“Content-Type:text/html;charset=utf-8”判断该文件为html文件,html为文本文件类型标识集合中的一个,因此,判断该文件为文本文件,即文本文件为文件类型标识属于预设标识集合中任一个的文件。此外,终端还可以基于编码方式等对文件类型进行判断,例如文本文件的编码方式包括ACII编码,UNICODE编码,GBK编码或UTF-8编码等。交互的根资源中包含的引用指向的文件,可以是文本文件,也可以是非文件文件。示例性地,非文本文件对应于应用程序中显示的图像或视频等内容。
非文本文件通常是基于值编码的文件,值的含义根据具体应用指定。本申请中在终端与服务器交互过程中涉及的非文本文件包括image、media等格式的文件,具体类型此处不做限定。示例性地:由文件类型标识“Content-Type:image/png;”指示对应文件是png格式的图片资源,属于非文本文件。文件类型标识“Content-Type:media/mp4;”指示对应文件为mp4格式的视频资源,属于非文本文件。
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
下面对本申请实施例中缓存库文件的更新方法的应用场景架构进行介绍,请参阅图1,为本申请实施例中缓存库文件的更新方法的应用场景架构图。
如图1所示,该系统架构包括终端100和服务器200。终端100和服务器通过有线或无线网络连接。
其中,终端100安装有应用程序101,终端100可以通过应用程序101获取用户请求,运行业务代码,并将文件对应的界面呈现给用户。终端100还包括缓存库102,用于存储应用程序101对应的文件。
终端100可以向服务器200发送请求消息,用于请求文件,服务器200可以基于获取的请求消息向终端返回响应消息,并在响应消息中携带请求的文件等。
若用户请求运行的文件位于缓存库102,则终端无需向服务器请求获取该文件,由此,可大大提升应用程序的响应时间,提高用户体验。但受限于缓存库容量,文件数量有限,并且为保证文件的有效性,需要消耗网络带宽用于更新缓存库中的文件。
由此,如何合理更新缓存库中的文件,提高文件的有效性,并减少文件缓存带来的网络带宽浪费成为一个亟待解决的问题。
为了便于理解本申请实施例提供的缓存库文件的更新方法的应用场景,图2提供了一个应用场景的示意图。
如图2所示,为终端应用程序的第一界面210,该第一界面210中包括多个标题,例如标题211。
终端获取用户指令,在首次加载该第一界面并渲染显示的过程中,终端将向服务器发起多次(可达上百次)资源请求,服务器基于终端的每个请求向终端返回文件,由于文件数量较多此处不一一枚举,可以理解的是,请求的文件中通常包括文本文件,还可能包括非文本文件。例如,一个资源请求为www.toutiao.com(其对应的完整请求路径为https://www.toutiao.com/),服务器基于自定义的文件类型进行响应(对于这类请求,服务器响应的文件通常为html格式的文本文件)此处以响应文件为index.html为例进行介绍,如图2中界面对应的html文件220为index.html文件中截取的部分示意图。index.html文件通过标签(一种html语法)的方式包含其他许多文件的引用,例如html、js、css、json等属于文本文件类型的文件,以及image、media等属于非文本文件类型的文件。
在该index.html文件引用的URL集合中,部分是界面渲染显示所必需的文件对应的URL,示例性的,如图中包含link标签的引用221,指向服务器上的css文件,包含script标签的引用222指向服务器上的js文件;部分是界面显示过程中暂时不需要获取指向后续交互(例如,点击链接,播放视频,屏幕缩放等操作)中需要的引用,例如界面中标题链接对应的引用223,当用户点击app界面的标题211,终端会根据其中的引用223向服务器请求对应的文件,此部分请求由用户交互触发。
可以理解的是,基于终端的多次资源请求获取的可缓存的文件将被放入缓存库中缓存。每个文件基于本申请提供的缓存库文件的更新方法进行更新。
本方法通过选择性针对文本文件进行缓存更新,可提高缓存库中文件的有效性并减少文件全部更新的带宽损失。
下面,对本申请提出的缓存库文件的更新方法进行介绍。
参见图3,本申请实施例提出了一种缓存库文件的更新方法300。该方法300可以应用于图1所示的场景中,其中,执行该方法装置相当于图1所示的终端100,该方法300包括步骤S301-S310。
S301、TTL小于或等于第一阈值时,终端判断第一文件的文件类型是否为文本文件。
终端下载并在缓存库中存储第一文件,终端基于用户指令,可以向服务器请求获取第一文件,终端下载第一文件并将该第一文件存储在终端本地的缓存库中,该缓存库为应用程序对应的存储区域。
对于终端缓存库中存储的第一文件,第一文件对应的TTL记录了该第一文件在缓存库中的有效时间,TTL到期后,第一文件不可用,因此终端可以在TTL小于或等于阈值时,对第一文件进行更新,本实施例中对于文本文件或非文本文件设计了不同的缓存更新方法,终端可以先对第一文件的文件类型进行判断。
需要说明的是,终端确定第一文件的文件类型的时机不做限定,可以在第一文件的TTL小于或等于第一阈值时确定,也可以在下载并存储该第一文件时确定。本实施例中以当TTL小于或等于第一阈值时,终端判断第一文件的文件类型是否为文本文件为例进行说明。
可以理解的是,终端确定第一文件的文件类型的方式可能有多种,作为一种具体的实现方式,所述终端根据文件类型标识确定所述第一文件的文件类型为文本文件。具体地,终端向服务器根据请求第一文件时,服务器返回的响应消息的头部字段中携带有第一文件的文件类型标识,终端可以据此判断请求的第一文件的文件类型,具体判断方法参考前述介绍,此处不再赘述。
当TTL小于或等于第一阈值时,终端判断第一文件的文件类型是否为文本文件,若是,则执行步骤S302至步骤S305;若否,则执行步骤S306至步骤S310。
终端判断第一文件的文件类型是否为文本文件,文本文件具体包括:html、xml、json、javascript等格式的文件。
终端通过请求第一文件时服务器返回的文件类型标识可以确定第一文件的文件类型。
在一种可能的实现方式中,终端为缓存库中的第一文件添加计时器事件,该事件为在TTL到期时(即TTL小于或等于阈值时)检查第一文件的内容是否未更改,以及其TTL是否可以扩展,进而进行文件更新,具体通过后续步骤S302至S310实现。
S302、终端向服务器发送第一请求消息。
若第一文件的文件类型为文本文件,终端向服务器发送第一请求消息,示例性地,第一请求消息为HTTP协议中的GET请求,终端通过该第一请求消息向服务器请求获取最新版本的第一文件。
终端的缓存库中存储有第一文件,以及第一文件对应的HTTP标头,该标头为应用程序显式请求该第一文件时使用的HTTP标头。可选地,若第一文件的文件类型为文本文件,终端使用该第一文件的HTTP标头向该第一文件对应的源服务器发送条件GET请求,若该第一文件已经修改,则返回最新的第一文件。该GET HTTP请求中包含缓存库中第一文件的缓存验证标头,缓存验证标头用于验证该文件的版本信息。缓存验证标头包括多种类型,例如ETag标头或Last-Modified标头,其中,ETag标头列出文件当前版本的唯一ID,如哈希值或版本号,而Last-Modified标头表示文件当前版本的创建时间。服务器可以判断终端缓存库中的第一文件是否有修改,具体地,服务器根据条件GET请求携带的缓存验证标头与服务器中第一文件的相应标识进行对比,例如,对比哈希值、版本号或创建时间,若标识值一致,代表文件未修改,若标示值不一致,代表文件已经修改。
S303、终端接收第一请求消息的第一响应消息。
终端接收服务器返回的第一请求消息的第一响应消息。终端根据所述第一请求消息的第一响应消息更新所述缓存库中的所述第一文件。
服务器返回的第一响应消息中可以携带该第一文件是否为最新版本的标识,例如,标识“200OK”指示第一文件已被修改,即该第一文件非最新版本,执行步骤S304。标识“304未修改”指示第一文件未被修改,即为第一文件为最新版本,执行步骤S305。
若服务器端的第一文件已经修改,根据条件GET请求返回的响应消息中携带最新版本的第一文件的信息,包括第一文件的具体内容以及相应的TTL;若服务器端的第一文件未修改,根据条件GET请求返回的响应消息中携带第一文件的最新TTL。
S304、若第一文件修改,则更新第一文件。
若服务器端的第一文件已经修改,则更新第一文件,响应消息中携带的最新版本的第一文件,终端根据所述最新文件内容更新缓存库中第一文件的内容,并根据最新TTL更新缓存库中第一文件的TTL。
S305、若第一文件未修改,则仅更新TTL。
若缓存库中的第一文件为最新版本,则无需更新第一文件的内容,根据GET请求返回的响应消息中携带最新的TTL仅更新第一文件对应的TTL即可。
S306、向服务器发送第二请求消息。
若终端确定第一文件的文件类型为非文本文件,终端不会直接向服务器请求获取该文件的最新版本,具体处理方式有多种,作为一种可能的实现方式,终端在该第一文件的TTL小于或等于第一阈值时,直接将所述第一文件标记为过期;或者,在另一种可能的实现方式中,基于第一文件在服务器端是否更新分别进行处理,本实施例中以此实现方式为例进行详细介绍。
若确定第一文件的文件类型为非文本文件,终端向该第一文件对应的源服务器发送第二请求消息,第二请求消息用于获取该第一文件当前最新版本信息。示例性地,第二请求消息为HTTP协议中的条件HEAD请求,用于获取第一文件当前的版本信息,与GET请求不同,HEAD请求中不包括缓存验证标头,服务器也不会基于HEAD请求向终端返回第一文件的最新版本。
S307、终端接收第二请求消息的第二响应消息。
终端接收源服务器返回的第二请求消息的第二响应消息,第二响应消息中携带服务器端最新版本的第一文件的版本信息。示例性地,该第二响应消息中包括服务器中第一文件对应的缓存验证标头,终端根据该缓存验证标头确定缓存库中第一文件的有效性。
S308、终端判断第一文件是否修改。
若是,则执行步骤S309;若否,则执行步骤S310。
终端根据第二请求消息的第二响应消息判断第一文件是否修改。示例性的,终端根据第二响应消息中携带的缓存验证标头的值与缓存库中第一文件的相应值进行比较。若值不匹配,即第一文件非最新版本,指示第一文件的内容已修改,则执行步骤S311;若值匹配,即第一文件为最新版本,第一文件未修改,则执行步骤S310。
S309、若第一文件修改,则标记第一文件过期。
对于属于非文本文件的第一文件,若第一文件内容已修改,则终端将第一文件标记为过期,需要注意的是,此时第一文件的内容不会被更新。由于非文本文件类型的文件通常较大,选择标记文件过期并不再更新可以释放缓存库内存,减少带宽消耗。
S310、若第一文件未修改,则仅更新TTL。
对于属于非文本文件的第一文件,若第一文件内容已修改,则终端更新其TTL即可。
本申请提供的缓存库文件的更新方法,基于第一文件的文件类型为文本文件,在TTL小于或等于第一阈值时选择更新第一文件。考虑到文本文件通常作为交互的根资源,且在缓存库中占用的存储资源少,本方法通过选择性针对文本文件进行缓存更新,可保证缓存库中的文本文件处于最新状态,提高文本文件的有效性并减少文件全部更新的带宽损失。
考虑到移动应用程序通常使用与网页加载中类似的模型来响应用户交互,通过分析文本内容,可以导出文本文件中引用的大部分URL(90%以上)。为进一步提高缓存库中文件的有效性,降低移动应用程序的网络延迟。本申请提供了另一个缓存库文件的更新方法,在前述方法保证缓存库中的文本文件处于最新状态的前提下,通过解析并获取文本文件内包含的URL,当应用程序加载该文本文件时,预取其中URL对应的文件,可降低移动应用程序的网络延迟,同时避免对于不必要的文件的预取,提高了预取的准确性。下面具体进行介绍:
参见图4,本申请实施例提出了一种缓存库文件的更新方法400。该方法400可以应用于图1所示的场景中,其中,执行该方法的装置相当于图1所示的终端100,该方法400包括步骤S401-S408。
S401、终端向服务器发送第一请求消息。
终端获取用户指示显示第一界面的指令,例如,用户触摸第一图标或者点击第一链接,该第一图标或第一链接对应第一界面,将触发终端获取并加载第一界面显示所需的文件(其中包括文本文件A)。终端需获取文本文件A,若终端缓存库中没有缓存文本文件A,则终端将向服务器请求获取文本文件A。可以理解的是,第一界面对应的文件可以为一个或多个,当用户请求显示第一界面,终端可通过多个请求消息分别向服务器进行请求,具体此处不再赘述。
具体地,终端向服务器发送第一请求消息,该第一请求消息要求用于获取文本文件A。
S402、服务器向终端返回第一请求消息的响应消息。
服务器向终端返回第一请求消息的响应消息,该响应消息中携带文本文件A。
S403、终端在缓存库中添加文本文件A。
终端获取文本文件A后,通过应用程序向用户展示文本文件A对应的界面,此外,终端还将在缓存库中添加文本文件A。需要说明的是,通常,对于被服务器标记为可缓存的文件,终端应用程序可将其添加到缓存库中。
S404、终端解析文本文件A,获取URL集合(包括文件B的URL)。
对于缓存库中的文本文件,终端可通过解析其文件结构获取其中包含的文件引用。具体地,若文本文件A中包含其他文件的引用,可以通过提取文本文件中的URL集合以获取文本文件引用的资源集。可选地,URL集合以列表的形式存储,即终端获取URL列表。解析文本文件获取的URL集合用于后续基于URL进行文件预取,在一种可能的实现方式中,终端获取URL集合包括文本文件A中所有引用的文件的URL。在另一种可能的实现方式中,终端获取所有引用的文件的URL之后,筛选出与文本文件A对应的界面的显示渲染必须依赖的文件的URL。
示例性的,以图2所示的文本文件为例,图2仅显示了该界面对应的html文档中的部分内容,其中包含的引用有:包含link标签的引用221,包含script标签的引用222,以及标题链接对应的引用223。其中,包含link标签的引用221和包含script标签的引用222指向的文属于界面渲染显示所必需的文件,而标题链接对应的引用223属于界面显示过程中暂时不需要获取的,指向后续交互需要的引用,由用户交互触发。本步骤中终端获取的URL集合,可以是文本文件中所有引用的文件的URL,包括:包含link标签的引用221,包含script标签的引用222和标题链接对应的引用223;也可以是文本文件对应的界面的显示渲染必须依赖的文件的URL,即:包含link标签的引用221和包含script标签的引用222,而不包括标题链接对应的引用223。
在一种可能的实现方式中,文本文件A中可能不包含引用,或者包含一个或多个引用文件。示例性的,本申请实施例中以文本文件A中引用了文件B该URL集合中包括文件B的URL为例进行介绍。
由于选择性缓存刷新策略,缓存库中的文本文件总是保持着最新内容,所以通过解析其结构获取到的引用资源集也是有效的。
S405、获取缓存库中的文本文件A。
由于用户与应用程序之间的交互,若终端再次加载文本文件A,例如应用程序基于用户指令再次请求显示第一界面时,终端可以直接从缓存库中获取文本文件A,而无需再次向服务器请求获取文本文件A,由此,可以提高响应速率,减少应用程序的网络延迟。
S406、终端向服务器发送第二请求消息。
当应用程序加载文本文件A时,终端还根据S404步骤中获取的URL集合,向服务器发送第二请求消息,请求对文本文件A引用的文件进行预取。
具体地,终端可以通过第二请求消息向服务器请求获取文件B。
可选地,终端在向服务器请求文件B之前,在缓存库中查找文件B,若终端的缓存库中不包含文件B,则终端根据文件B的URL向服务器发起第二请求消息。
S407、服务器返回第二请求消息的响应消息。
服务器根据终端发送的第二请求消息返回文件B,文件B携带在该响应消息中。
S408、终端在缓存库中添加文件B。
终端根据服务器返回的响应消息在缓存库中添加文件B。由于终端在应用程序加载文本文件A时,向服务器预取文本文件A中引用的文件,例如文件B,由于呈现给用户的界面为文本文件A对应的界面,用户后续交互中有较大可能通过该界面触发其引用,例如对文件B的引用。终端从服务器预取文件B并存储在缓存库中,可以应对用户未来可能的对文件B的请求。若后续用户请求文件B对应的界面,终端可以直接从缓存库获取文件B,而无需临时向服务器获取,可以减少应用程序的网络延迟。
下面以一示例介绍本申请提供的缓存库文件的更新方法中,缓存和预取策略结合更新缓存库中的文件的过程。示例性地,假设文本文件A中引用文件C,文件D,文件E和文件F,其中,文件C和文件D为文本文件,文件E和文件F为非文本文件。终端解析缓存库中的文本文件A,获取的URL集合中包括文件C,文件D,文件E和文件F各自对应的URL。当终端请求文本文件A时,终端根据URL集合向服务器请求文件C,文件D,文件E和文件F,并添加至缓存库中。文件C,文件D,文件E和文件F可以基于上述实施例中的缓存更新方法进行更新。例如,若上述四个文件的TTL均到期后,假设所有文件均未更新,则终端可以拓展每个文件的TTL。若上述四个文件的TTL均到期后,假设所有文件均更新,则终端可以更新属于文本文件的文件C和文件D,而将属于非文本文件的文件E和文件F标记为过期。
为了进一步从应用程序请求文件的角度,描述本申请提供的缓存库文件的更新方法如何结合缓存和预取技术发挥作用,减少应用程序的网络时延,下面请参见图5,随本申请实施例中一种缓存库文件的更新方法进行介绍。该方法可以应用于图1所示的场景中,图5中的终端相当于图1中的终端100,图5中的服务器相当于图1中的服务器200。图5中的应用程序相当于图1中的应用程序101,图5中的缓存库相当于图1中的缓存库102。粗箭头表示由缓存库发起的与服务器之间进行通信的进程。弧线箭头表示终端对文件的请求流程。
基于上述实施例的介绍,终端应用程序对于文件的请求过程按照时序可表示为图5所示的三个阶段,本实施例中假设应用程序请求显示的界面对应的文件包括文件A,文件A为文本文件,包含对文件B的引用,文件B为非文本文件。第一阶段,终端加载文件A,并基于用户交互加载文件B;第二阶段,应用程序结束对文件A和文件B的加载,并间隔一段时长后的状态;第三阶段,为终端再次加载文件A时,终端对文件A和文件B的加载流程。需要说明的是,终端应用程序对文件的加载请求由用户交互触发,在第一阶段之前,终端缓存库中不包含文件A及文件B,服务器端则存储有文件A及文件B,需要说明的是,图示服务器为泛指,文件A和文件B可以存储在同一服务器中,也可以存储在不同服务器中,具体此处不做限定。
下面对三个阶段中终端对文件的请求流程进行具体介绍:
第一阶段:基于用户指令触发,应用程序首次请求文本文件A,由于此时终端缓存库中没有文件A,文件A存在于服务器端,故终端需要与服务器进行通信,通过请求流程501获取文件A。服务器返回终端所需的文件A后,应用程序在使用文件A的同时,将其添加到缓存库中。此时,由于文件A为文本文件,基于实时预取策略,对缓存库中的文件A的结构和内容进行分析,获取文件A应用的URL集合,包括文件B的URL由于文件A中引用了文件B,文件B为非文本文件,通过对文件A的解析,可以获取文件B在服务器上的位置信息,然后启动一个异步进程,终端从服务器请求文件B并将其缓存(流程502)。当应用程序需要获取文件B时,可直接从缓存库中获取(流程503),而不必再与服务器进行请求响应交互。
第二阶段:由于文件A和文件B的缓存时长受限于其TTL设置,故缓存库将对文件的TTL进行检查,当发现TTL即将到期时,主动向服务器发起请求以刷新文件。假设在服务器端文件A和文件B均已被修改,在此阶段中,按照选择性缓存刷新策略,缓存库请求文件A的最新内容并将缓存更新,设置新的TTL;而对于非文本文件类型的文件B,当发现其TTL已过期时,不再请求其最新内容,仅在本地将其标记为过期。故在此阶段,缓存库保存文件A的最新内容以及新的TTL,而文件B已不在缓存库中。
第三阶段,假设应用程序再次运行,需要加载文件A。由于选择性缓存刷新机制,此时文件A仍在缓存库中存有最新的副本,故可直接从缓存库中获取(流程504);与此同时,根据实时预取策略,应用程序还对文件B发起异步预取请求并将获取到的文件B添加到缓存库(流程505)。当应用程序在执行过程中需要使用文件B时,又可以直接从缓存库中获取(流程506)。再此阶段中,应用程序在请求文件A和B时,都是从缓存库中获取,避免向服务器请求文件,有效减少了获取文件所消耗的时长。
预取系统旨在预测未来的用户交互,并提前下载所需的内容,以便存储在客户端缓存中。缺点主要是难以准确预测用户将进行哪些交互、何时以及需要哪些文件,错误的预测会导致带宽和能源的浪费。基于上述原因,目前多数使用预取的应用程序通常选择获取大量内容的通用策略,然而其中大部分内容未使用。
本申请提出的缓存库文件的更新方法通过解析并获取文本文件内包含的URL,当应用程序加载该文本文件时,预取其中URL对应的文件,实时预取和缓存刷新策略可以有效减少应用程序和服务器之间的资源请求响应次数,从而降低移动应用程序的网络延迟,同时避免对于不必要的文件的预取,提高了预取的准确性。
上面介绍了本申请提供的缓存库文件的更新方法,下面对实现该缓存库文件的更新方法的终端进行介绍,请参阅图6,为本申请实施例中终端的一个实施例示意图。
本申请实施例提供了一种终端,包括:
处理模块601,用于下载并在缓存库中存储第一文件;所述处理模块601,还用于若所述第一文件的生存时间小于或等于第一阈值,且所述第一文件的文件类型为文本文件,则更新所述缓存库中的所述第一文件。
可选地,所述终端还包括:确定模块602,用于在所述终端更新所述缓存库中的所述第一文件之前,确定所述第一文件的文件类型为文本文件。
可选地,所述确定模块602,具体用于:根据文件类型标识确定所述第一文件的文件类型为文本文件。
可选地,所述终端还包括:收发模块603,用于在所述终端确定第一文件的文件类型为文本文件之后,向所述第一文件对应的服务器发送第一请求消息,所述第一请求消息用于请求最新版本的第一文件;所述收发模块603,还用于接收所述第一请求消息的第一响应消息;所述处理模块601,具体用于:根据所述第一响应消息更新所述缓存库中的所述第一文件。
可选地,若所述缓存库中的所述第一文件的版本为最新版本,所述第一响应消息中携带所述第一文件的最新生存时间;所述处理模块601,具体用于:根据所述最新生存时间更新所述缓存库中所述第一文件的生存时间。
可选地,若所述缓存库中的所述第一文件的版本非最新版本,所述第一响应消息中携带第一文件的最新文件内容以及最新生存时间;所述处理模块601,具体用于:根据所述最新文件内容更新所述缓存库中第一文件的内容,并根据所述最新生存时间更新所述缓存库中第一文件的生存时间。
可选地,所述处理模块601,还用于:下载并在所述缓存库中存储第二文件;若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则标记所述第二文件过期。
可选地,所述处理模块601,还用于:下载并在所述缓存库中存储第二文件;所述终端还包括:收发模块603,用于若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则向所述第二文件对应的服务器发送第二请求消息;第二文件若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本非最新版本,所述处理模块601,还用于标记所述缓存库中的所述第二文件过期;若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本为最新版本,所述处理模块601具体用于更新所述缓存库中的所述第二文件的生存时间。
可选地,所述第一文件的内容中包括第三文件的URL,所述处理模块601,还用于获取所述第一文件的URL集合,所述URL集合包括所述第一文件中引用的文件对应的URL,所述URL集合包括所述第三文件的URL。
可选地,所述处理模块601,还用于:若所述终端的应用程序加载所述第一文件,则根据所述URL集合中的所述第三文件的URL缓存所述第三文件。
可选地,所述终端还包括:查询模块604,用于在缓存库中查询所述第三文件;若所述终端的缓存库中不存在所述第三文件,则所述处理模块601根据所述第三文件的URL下载并在所述缓存库中存储所述第三文件。
可选地,所述处理模块601,还用于:若应用程序加载所述第一文件,则根据所述URL集合在所述缓存库中缓存所述URL集合中每个URL对应的文件。
应理解以上终端的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块以硬件的形式实现。例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(applicationspecific integrated circuit,ASIC),或,一个或多个微处理器(digital singnalprocessor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
请参阅图7,为本申请实施例中终端的另一个实施例示意图;
本实施例提供的终端,可以各类包含存储器的终端设备,例如手机、平板电脑、可穿戴设备等,可以理解的是,终端的应用程序可以获取用户指令,并向用户提供显示界面或呈现多媒体资源等,本申请实施例中对终端的具体设备形态不做限定。
该终端700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器701和存储器702,该存储器702中存储有程序或数据。
其中,存储器702可以是易失性存储或非易失性存储,存储器702可用于实现与应用程序对应的缓存库,用于存储各类文件。包括。可选地,处理器701是一个或多个中央处理器(central processing unit,CPU),该CPU可以是单核CPU,也可以是多核CPU。处理器701可以与存储器702通信,在终端700上执行存储器702中的一系列指令。
该终端700还包括一个或一个以上有线或无线网络接口703,例如以太网接口。
可选地,尽管图7中未示出,终端700还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
本实施例中终端700中的处理器701所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (27)
1.一种缓存库文件的更新方法,其特征在于,包括:
终端下载并在缓存库中存储第一文件;
若所述第一文件的生存时间小于或等于第一阈值,且所述第一文件的文件类型为文本文件,则所述终端更新所述缓存库中的所述第一文件。
2.根据权利要求1所述的方法,其特征在于,在所述终端更新所述缓存库中的所述第一文件之前,所述方法还包括:
所述终端确定所述第一文件的文件类型为文本文件。
3.根据权利要求2所述的方法,其特征在于,所述终端确定所述第一文件的文件类型为文本文件,包括:
所述终端根据文件类型标识确定所述第一文件的文件类型为文本文件。
4.根据权利要求2或3所述的方法,其特征在于,在所述终端确定第一文件的文件类型为文本文件之后,所述方法还包括:
所述终端向所述第一文件对应的服务器发送第一请求消息,所述第一请求消息用于请求最新版本的第一文件;
所述终端接收所述第一请求消息的第一响应消息;
所述终端更新所述第一文件包括:
所述终端根据所述第一响应消息更新所述缓存库中的所述第一文件。
5.根据权利要求4所述的方法,其特征在于,若所述缓存库中的所述第一文件的版本为最新版本,所述第一响应消息中携带所述第一文件的最新生存时间;
所述终端根据所述第一响应消息更新所述缓存库中的所述第一文件,包括:
所述终端根据所述最新生存时间更新所述缓存库中所述第一文件的生存时间。
6.根据权利要求4所述的方法,其特征在于,若所述缓存库中的所述第一文件的版本非最新版本,所述第一响应消息中携带第一文件的最新文件内容以及最新生存时间;
所述终端根据所述第一请求消息的第一响应消息更新所述第一文件,包括:
所述终端根据所述最新文件内容更新所述缓存库中第一文件的内容,并根据所述最新生存时间更新所述缓存库中第一文件的生存时间。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
终端下载并在所述缓存库中存储第二文件;
若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则所述终端标记所述第二文件过期。
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
终端下载并在所述缓存库中存储第二文件;
若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则所述终端向所述第二文件对应的服务器发送第二请求消息;
所述终端接收所述第二请求消息返回的第二响应消息;
若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本非最新版本,则所述终端标记所述缓存库中的所述第二文件过期;
若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本为最新版本,则所述终端更新所述缓存库中的所述第二文件的生存时间。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述第一文件的内容中包括第三文件的统一资源定位符URL,所述方法还包括:
所述终端获取所述第一文件的URL集合,所述URL集合包括所述第一文件中引用的文件对应的URL,所述URL集合包括所述第三文件的URL。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述终端的应用程序加载所述第一文件,则所述终端根据所述URL集合中的所述第三文件的URL缓存所述第三文件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述终端在缓存库中查询所述第三文件;
若所述终端的缓存库中不存在所述第三文件,则所述终端根据所述第三文件的URL下载并在所述缓存库中存储所述第三文件。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若应用程序加载所述第一文件,则所述终端根据所述URL集合在所述缓存库中缓存所述URL集合中每个URL对应的文件。
13.一种终端,其特征在于,包括:
处理模块,用于下载并在缓存库中存储第一文件;
所述处理模块,还用于若所述第一文件的生存时间小于或等于第一阈值,且所述第一文件的文件类型为文本文件,则更新所述缓存库中的所述第一文件。
14.根据权利要求13所述的终端,其特征在于,所述终端还包括:
确定模块,用于在所述终端更新所述缓存库中的所述第一文件之前,确定所述第一文件的文件类型为文本文件。
15.根据权利要求14所述的终端,其特征在于,所述确定模块,具体用于:
根据文件类型标识确定所述第一文件的文件类型为文本文件。
16.根据权利要求14或15所述的终端,其特征在于,所述终端还包括:
收发模块,用于在所述终端确定第一文件的文件类型为文本文件之后,向所述第一文件对应的服务器发送第一请求消息,所述第一请求消息用于请求最新版本的第一文件;
所述收发模块,还用于接收所述第一请求消息的第一响应消息;所述处理模块,具体用于:
根据所述第一响应消息更新所述缓存库中的所述第一文件。
17.根据权利要求16所述的终端,其特征在于,若所述缓存库中的所述第一文件的版本为最新版本,所述第一响应消息中携带所述第一文件的最新生存时间;
所述处理模块,具体用于:
根据所述最新生存时间更新所述缓存库中所述第一文件的生存时间。
18.根据权利要求16所述的终端,其特征在于,若所述缓存库中的所述第一文件的版本非最新版本,所述第一响应消息中携带第一文件的最新文件内容以及最新生存时间;
所述处理模块,具体用于:
根据所述最新文件内容更新所述缓存库中第一文件的内容,并根据所述最新生存时间更新所述缓存库中第一文件的生存时间。
19.根据权利要求13至18中任一项所述的终端,其特征在于,所述处理模块,还用于:
下载并在所述缓存库中存储第二文件;
若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则标记所述第二文件过期。
20.根据权利要求13至18中任一项所述的终端,其特征在于,所述处理模块,还用于:
下载并在所述缓存库中存储第二文件;
所述终端还包括:
收发模块,用于若所述第二文件的生存时间小于或等于第二阈值,且所述第二文件的文件类型为非文本文件,则向所述第二文件对应的服务器发送第二请求消息;
第二文件若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本非最新版本,所述处理模块,还用于标记所述缓存库中的所述第二文件过期;
若根据所述第二请求消息返回的第二响应消息确定所述第二文件的版本为最新版本,所述处理模块具体用于更新所述缓存库中的所述第二文件的生存时间。
21.根据权利要求13至20中任一项所述的终端,其特征在于,所述第一文件的内容中包括第三文件的URL,所述处理模块,还用于获取所述第一文件的URL集合,所述URL集合包括所述第一文件中引用的文件对应的URL,所述URL集合包括所述第三文件的URL。
22.根据权利要求21所述的终端,其特征在于,所述处理模块,还用于:
若所述终端的应用程序加载所述第一文件,则根据所述URL集合中的所述第三文件的URL缓存所述第三文件。
23.根据权利要求22所述的终端,其特征在于,所述终端还包括:
查询模块,用于在缓存库中查询所述第三文件;
若所述终端的缓存库中不存在所述第三文件,则所述处理模块根据所述第三文件的URL下载并在所述缓存库中存储所述第三文件。
24.根据权利要求21所述的终端,其特征在于,所述处理模块,还用于:
若应用程序加载所述第一文件,则根据所述URL集合在所述缓存库中缓存所述URL集合中每个URL对应的文件。
25.一种终端,其特征在于,包括:处理器和存储器;其中,
所述存储器中存储有计算机可读指令;
所述处理器读取所述计算机可读指令以使所述终端实现如权利要求1至12中任一项所述的方法。
26.一种计算机程序产品,其特征在于,包括计算机可读指令,当所述计算机可读指令在计算机上运行时,使得所述计算机执行如权利要求1至12任一项所述的方法。
27.一种计算机可读存储介质,其特征在于,存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288717.5A CN116846881A (zh) | 2022-03-23 | 2022-03-23 | 一种缓存库文件的更新方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210288717.5A CN116846881A (zh) | 2022-03-23 | 2022-03-23 | 一种缓存库文件的更新方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116846881A true CN116846881A (zh) | 2023-10-03 |
Family
ID=88162139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210288717.5A Pending CN116846881A (zh) | 2022-03-23 | 2022-03-23 | 一种缓存库文件的更新方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116846881A (zh) |
-
2022
- 2022-03-23 CN CN202210288717.5A patent/CN116846881A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10645143B1 (en) | Static tracker | |
KR101609483B1 (ko) | 클라우드 컴퓨팅에 의해 향상된 웹 브라우징 | |
US11095494B2 (en) | Methods and systems for implementing a cache model in a prefetching system | |
US10291738B1 (en) | Speculative prefetch of resources across page loads | |
US9055124B1 (en) | Enhanced caching of network content | |
US8856263B2 (en) | Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques | |
CN107463641B (zh) | 用于改进对搜索结果的访问的系统和方法 | |
EP1662405A1 (en) | Method of displaying data on a client computer | |
US9531829B1 (en) | Smart hierarchical cache using HTML5 storage APIs | |
US10909104B2 (en) | Caching of updated network content portions | |
EP0898754B1 (en) | Information retrieval in cache database | |
WO2008103639A1 (en) | System and method for preloading content on the basis of user context | |
US20080235708A1 (en) | Selectively updating web pages on a mobile client | |
CN1234086C (zh) | 用于高速缓存文件信息的系统和方法 | |
CN104468807A (zh) | 进行网页缓存的处理方法、云端装置、本地装置及系统 | |
US10616356B2 (en) | Optimization of asynchronous pushing of web resources | |
CN103152367A (zh) | 一种缓存的动态维护更新方法及系统 | |
CN113590974B (zh) | 推荐页面配置方法、装置、电子设备和计算机可读介质 | |
Liu et al. | SWAROVsky: Optimizing resource loading for mobile web browsing | |
CN116846881A (zh) | 一种缓存库文件的更新方法及终端 | |
US20140237133A1 (en) | Page download control method, system and program for ie core browser | |
CN117235398B (zh) | 网页加载方法、设备及可读存储介质 | |
EP1850242B1 (en) | Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device | |
Serbinski | Prefetchingin HTTP to improve performance in the delivery ofweb pages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |