CN111752861A - 应用多级缓存方法、装置、客户端及存储介质 - Google Patents
应用多级缓存方法、装置、客户端及存储介质 Download PDFInfo
- Publication number
- CN111752861A CN111752861A CN202010600213.3A CN202010600213A CN111752861A CN 111752861 A CN111752861 A CN 111752861A CN 202010600213 A CN202010600213 A CN 202010600213A CN 111752861 A CN111752861 A CN 111752861A
- Authority
- CN
- China
- Prior art keywords
- application
- caching
- level
- access request
- memory
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据缓存技术领域,提供一种应用多级缓存方法、装置、客户端及存储介质,包括:响应于接收到的应用的访问请求启动所述应用,并侦测所述应用上接收到的操作信号;判断所述访问请求是否为首次访问请求;当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源;当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘;当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。本发明能够与应用服务器进行交互,实现了根据应用的级别来执行不同的缓存策略。
Description
技术领域
本发明涉及缓存技术领域,具体涉及一种应用多级缓存方法、装置、客户端及存储介质。
背景技术
现有互联网应用大多数依赖网络作为必要条件,在弱网环境下,例如电梯、高铁、建筑物密集等,网络不稳定,导致应用间歇中断、网络速率慢等,一旦网络发生中断,则整个应用变得不可用,与应用相关的所有信息都将无法获取。
现有技术中的各种缓存方案,将所有的应用资源均缓存在本地中,并没有针对不同的应用采用不同的缓存策略。
发明内容
鉴于以上内容,有必要提出一种应用多级缓存方法、装置、客户端及存储介质,能够与应用服务器进行交互,实现了根据应用的级别来执行不同的缓存策略。
本发明的第一方面提供一种应用多级缓存方法,所述应用多级缓存方法包括:
响应于接收到的应用的访问请求启动所述应用,并侦测所述应用上接收到的操作信号;
判断所述访问请求是否为首次访问请求;
当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源;
当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘;
当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。
根据本发明的一个可选的实施例,所述采用长周期缓存策略缓存所述应用资源包括:
根据页面的标签标记所述应用的每一个页面的页面ID;
记录用户访问每一个页面时的交互数据,所述交互数据包括:滚动位置、交互状态及访问参数;
将所述页面ID及对应的交互数据和所述应用资源持久化至硬盘中并为所述硬盘中的交互数据设置定时器;
当所述定时器到期,清除所述硬盘中的所述交互数据。
根据本发明的一个可选的实施例,所述采用短周期缓存策略缓存所述应用资源包括:
将所述应用的DOM节点缓存至内存中;
当接收到应用的关闭信号时,释放所述内存中的所述DOM节点。
根据本发明的一个可选的实施例,所述应用多级缓存方法还包括:
当确定所述访问请求为二次访问请求时,将所述硬盘中的应用资源映射到所述内存中;
判断所述内存中是否有与所述操作信号对应的目标资源;
当所述内存中有所述目标资源时,从所述内存中命中所述目标资源;
当所述内存中没有所述目标资源时,从所述对应的应用服务器中获取所述目标资源。
根据本发明的一个可选的实施例,所述将所述硬盘中存储的应用资源映射到所述内存中包括:
从所述硬盘中查找与所述应用对应的存储目录;
判断所述存储目录中是否存储有应用资源;
当所述存储目录中存储有应用资源时,将所述硬盘中的所述应用资源映射到内存中。
根据本发明的一个可选的实施例,所述应用多级缓存方法还包括:
发送资源版本查询请求至所述应用服务器,使得所述应用服务器查询所述资源版本是否有更新;
当接收到所述应用服务器返回的所述资源版本有更新的结果时,下载更新后的资源;
在资源更新成功后,更新所述应用。
根据本发明的一个可选的实施例,所述判断所述访问请求是否为首次访问请求包括:
搜索本地数据库中是否记录有所述应用的应用标识;
当没有搜索出所述应用标识时,确定所述访问请求为首次访问请求;
当搜索出所述应用标识时,确定所述访问请求不为首次访问请求。
本发明的第二方面提供一种应用多级缓存装置,所述装置包括:
应用启动模块,用于响应于接收到的应用的访问请求启动所述应用,并侦测所述应用上接收到的操作信号;
请求判断模块,用于判断所述访问请求是否为首次访问请求;
资源接收模块,用于当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源;
第一缓存模块,用于当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘;
第二缓存模块,用于当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。
本发明的第三方面提供一种客户端,所述客户端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述应用多级缓存方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述应用多级缓存方法。
综上所述,本发明所述的应用多级缓存方法、装置、客户端及存储介质,通过客户端与服务器的交互确定访问的应用是否为高频率的应用,而采取不同的缓存策略,实现了不同应用的分级缓存,不仅能够快速响应访问频率高的应用,还能够节省客户端的存储空间。
附图说明
图1是本发明实施例一提供的应用多级缓存方法的流程图。
图2是本发明实施例二提供的应用多级缓存装置的结构图。
图3是本发明实施例三提供的客户端的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
图1是本发明实施例一提供的应用多级缓存方法的流程图。
所述应用多级缓存方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
S11,响应于接收到的应用的访问请求启动所述应用,并侦测所述应用上接收到的操作信号。
客户端中安装有一个或多个应用。用户可以通过点击或者触摸或者语音控制来发送对应用的访问请求。客户端接收到所述应用的访问请求时,进行响应,启动所述应用。
用户可以访问所述应用的一个或者多个页面,并在所述应用的一个或者多个页面上进行操作,例如,观看视频,浏览图片,阅读页面等。
S12,判断所述访问请求是否为首次访问请求。
用户提出的对应用的第一次访问请求,称之为首次访问请求,用户提出的对应用的非首次访问请求,称之为二次访问请求。
在一个可选的实施例中,所述判断所述访问请求是否为首次访问请求包括:
搜索本地数据库中是否记录有所述应用的应用标识;
当没有搜索出所述应用标识时,确定所述访问请求为首次访问请求;
当搜索出所述应用标识时,确定所述访问请求不为首次访问请求。
客户端中不同的应用对应有不同的应用标识,客户端接收到应用的访问请求时,可以在本地数据库中记录所述应用的应用标识,并在后续接收到应用的访问请求时,先根据应用的应用标识确定首次访问还是二次访问所述应用。当所述应用的应用标识未被记录过,则表明首次访问所述应用;当所述应用的应用标识已经被记录过,则表明二次访问所述应用。
S13,当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源。
将应用标识发送给应用对应的应用服务器,使得应用服务器判断所述应用的访问频率,根据访问频率确定所述应用的级别。访问频率越高(访问频率大于预设频率阈值),对应的应用的级别为第一级别。访问频率越低(访问频率小于或者等于预设频率阈值),对应的应用的级别为第二级别。
应用服务器可以根据多个客户端发送的应用的访问请求的次数来确定应用的应用级别,接收到的应用的访问请求的次数越多,确定应用的级别为第一级别,接收到的应用的访问请求的次数越少,确定应用的级别为第二级别。
客户端侦测到所述应用上接收到用户的操作信号时,将所述操作信号发送给应用服务器,应用服务器获取与所述操作信号对应的资源并返回给客户端。应用服务器可以将应用的级别及与第一个操作信号对应的应用资源一并返回给客户端。应用服务器也可以先将与第一个操作信号对应的应用资源返回给客户端,当接收到应用的应用标识时,再返回应用的级别。
S14,当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘。
确定用户访问的应用为第一级别的应用时,采用长周期缓存策略进行缓存,便于用户后续直接命中缓存,节省时间。
S15,当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。
确定用户访问的应用为第二级别的应用时,采用短周期缓存策略进行缓存,便于节省存储空间。
本实施例,通过客户端与服务器的交互确定访问的应用是否为高频率的应用,而采取不同的缓存策略,实现了不同应用的分级缓存,不仅能够快速响应访问频率高的应用,还能够节省客户端的存储空间。
在一个可选的实施例中,所述采用长周期缓存策略缓存所述应用资源包括:
根据页面的标签标记所述应用的每一个页面的页面ID;
记录用户访问每一个页面时的交互数据,所述交互数据包括:滚动位置、交互状态及访问参数;
将所述页面ID及对应的交互数据和所述应用资源持久化至硬盘中并为所述硬盘中的交互数据设置定时器;
当所述定时器到期,清除所述硬盘中的所述交互数据。
该可选的实施例中,所述页面的标签可以是tab标签,也可以是a标签。不同的页面中的tab标签或者a标签不同。
现有技术中,对页面的缓存只保存了DOM节点,而没有保存页面的滚动位置、交互状态、访问参数等交互数据,因而无法真正保存所访问的页面的访问状态;且现有技术中,如果重新访问同一个页面,也仅记录了所述页面的最新的访问状态,即覆盖了历史的访问状态,导致混乱。
本实施例,通过将每一个页面的每一次访问时的滚动位置、交互状态、访问参数及页面ID缓存到硬盘中而不销毁,实现了页面级别的访问状态的缓存。当用户再次访问所述页面时,无需重新加载所述页面并获取所述页面中的多个数据,而是直接从硬盘中获取所述页面的多个数据,并根据所述多个数据恢复所述页面的访问状态,如此不仅能大大提高页面的响应及复用能力,同时还能获得页面无缝切换的体验。
所述定时器,用于设置所述硬盘中的交互数据的有效时间。使得硬盘中的数据能够得到清除,避免长时间占用硬盘空间,影响客户端的性能。
需要强调的是,为进一步保证上述交互数据的私密和安全性,上述交互数据还可以存储于一区块链的节点中。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一个可选的实施例中,所述采用短周期缓存策略缓存所述应用资源包括:
将所述应用的DOM节点缓存至内存中;
当接收到应用的关闭信号时,释放所述内存中的所述DOM节点。
该可选的实施例中,由于短周期缓存策略将应用资源缓存至内存,使得当应用被关闭后内存数据会释放,因此对于单次打开期间有效,而长周期缓存策略能够保证应用启动多次缓存都有效。
在一个可选的实施例中,所述应用多级缓存方法还包括:
当确定所述访问请求为二次访问请求时,将所述硬盘中的应用资源映射到所述内存中;
判断所述内存中是否有与所述操作信号对应的目标资源;
当所述内存中有所述目标资源时,从所述内存中命中所述目标资源;
当所述内存中没有所述目标资源时,从所述对应的应用服务器中获取所述目标资源。
该可选的实施例中,初次访问过后,对应用的页面的多个数据均进行了缓存,在二次访问时,不发起网络请求,即使用户完全离线,已经访问过的页面也可完全再次访问,可获得瞬间打开页面的效果,大大提高了用户的体验及用户的粘性。将硬盘中的资源映射到内存中,因此先检查相同的请求是否已经有目标资源的步骤将在内存中进行,而非每次读取硬盘,既可避免频繁的读取硬盘对硬盘造成损失,且从内存中命中目标资源的效率相比从硬盘中命中目标资源的效率更高。
在一个可选的实施例中,所述将所述硬盘中的应用资源映射到所述内存中包括:
从所述硬盘中查找与所述应用对应的存储目录;
判断所述存储目录中是否存储有应用资源;
当所述存储目录中存储有应用资源时,将所述硬盘中的存储的应用资源映射到内存中。
该可选的实施例中,当存储目录中存储有应用资源时,表明应用资源没有过期,则可将应用资源先映射到内存中,便于从内存中读取。
在一个可选的实施例中,所述应用多级缓存方法还包括:
发送资源版本查询请求至所述应用服务器,使得所述应用服务器查询所述资源版本是否有更新;
当接收到所述应用服务器返回的所述资源版本有更新的结果时,下载更新后的资源;
在资源更新成功后,更新所述应用。
在该可选的实施例中,客户端的服务工作线程会向服务器请求查询静态资源版本是否有更新,如果服务器查询到静态资源有更新版本,则发送静态资源的更新版本至客户端。客户端在后台静默下载静态资源的更新版本,并在更新成功后,下一次打开应用时更新应用。或者,客户端在更新成功后,提示用户更新应用。
图2是本发明实施例二提供的应用多级缓存装置的结构图。
在一些实施例中,所述应用多级缓存装置20可以包括多个由计算机程序段所组成的功能模块。所述应用多级缓存装置20中的各个程序段的计算机程序可以存储于客户端的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)应用多级缓存的功能。
本实施例中,所述应用多级缓存装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:应用启动模块201、请求判断模块202、资源接收模块203、第一缓存模块204、第二缓存模块205、资源映射模块206、资源命中模块207及版本更新模块208。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述应用启动模块201,用于响应于接收到的应用的访问请求启动所述应用,并侦测所述应用上接收到的操作信号。
客户端中安装有一个或多个应用。用户可以通过点击或者触摸或者语音控制来发送对应用的访问请求。客户端接收到所述应用的访问请求时,进行响应,启动所述应用。
用户可以访问所述应用的一个或者多个页面,并在所述应用的一个或者多个页面上进行操作,例如,观看视频,浏览图片,阅读页面等。
所述请求判断模块202,应用判断所述访问请求是否为首次访问请求。
用户提出的对应用的第一次访问请求,称之为首次访问请求,用户提出的对应用的非首次访问请求,称之为二次访问请求。
在一个可选的实施例中,所述请求判断模块202判断所述访问请求是否为首次访问请求包括:
搜索本地数据库中是否记录有所述应用的应用标识;
当没有搜索出所述应用标识时,确定所述访问请求为首次访问请求;
当搜索出所述应用标识时,确定所述访问请求不为首次访问请求。
客户端中不同的应用对应有不同的应用标识,客户端接收到应用的访问请求时,可以在本地数据库中记录所述应用的应用标识,并在后续接收到应用的访问请求时,先根据应用的应用标识确定首次访问还是二次访问所述应用。当所述应用的应用标识未被记录过,则表明首次访问所述应用;当所述应用的应用标识已经被记录过,则表明二次访问所述应用。
所述资源接收模块203,用于当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源。
将应用标识发送给应用对应的应用服务器,使得应用服务器判断所述应用的访问频率,根据访问频率确定所述应用的级别。访问频率越高(访问频率大于预设频率阈值),对应的应用的级别为第一级别。访问频率越低(访问频率小于或者等于预设频率阈值),对应的应用的级别为第二级别。
应用服务器可以根据多个客户端发送的应用的访问请求的次数来确定应用的应用级别,接收到的应用的访问请求的次数越多,确定应用的级别为第一级别,接收到的应用的访问请求的次数越少,确定应用的级别为第二级别。
客户端侦测到所述应用上接收到用户的操作信号时,将所述操作信号发送给应用服务器,应用服务器获取与所述操作信号对应的资源并返回给客户端。应用服务器可以将应用的级别及与第一个操作信号对应的应用资源一并返回给客户端。应用服务器也可以先将与第一个操作信号对应的应用资源返回给客户端,当接收到应用的应用标识时,再返回应用的级别。
所述第一缓存模块204,用于当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘。
确定用户访问的应用为第一级别的应用时,采用长周期缓存策略进行缓存,便于用户后续直接命中缓存,节省时间。
所述第二缓存模块205,用于当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。
确定用户访问的应用为第二级别的应用时,采用短周期缓存策略进行缓存,便于节省存储空间。
本实施例,通过客户端与服务器的交互确定访问的应用是否为高频率的应用,而采取不同的缓存策略,实现了不同应用的分级缓存,不仅能够快速响应访问频率高的应用,还能够节省客户端的存储空间。
在一个可选的实施例中,所述第一缓存模块204采用长周期缓存策略缓存所述应用资源包括:
根据页面的标签标记所述应用的每一个页面的页面ID;
记录用户访问每一个页面时的交互数据,所述交互数据包括:滚动位置、交互状态及访问参数;
将所述页面ID及对应的交互数据和所述应用资源持久化至硬盘中并为所述硬盘中的交互数据设置定时器;
当所述定时器到期,清除所述硬盘中的所述交互数据。
该可选的实施例中,所述页面的标签可以是tab标签,也可以是a标签。不同的页面中的tab标签或者a标签不同。
现有技术中,对页面的缓存只保存了DOM节点,而没有保存页面的滚动位置、交互状态、访问参数等交互数据,因而无法真正保存所访问的页面的访问状态;且现有技术中,如果重新访问同一个页面,也仅记录了所述页面的最新的访问状态,即覆盖了历史的访问状态,导致混乱。
本实施例,通过将每一个页面的每一次访问时的滚动位置、交互状态、访问参数及页面ID缓存到硬盘中而不销毁,实现了页面级别的访问状态的缓存。当用户再次访问所述页面时,无需重新加载所述页面并获取所述页面中的多个数据,而是直接从硬盘中获取所述页面的多个数据,并根据所述多个数据恢复所述页面的访问状态,如此不仅能大大提高页面的响应及复用能力,同时还能获得页面无缝切换的体验。
所述定时器,用于设置所述硬盘中的交互数据的有效时间。使得硬盘中的数据能够得到清除,避免长时间占用硬盘空间,影响客户端的性能。
需要强调的是,为进一步保证上述交互数据的私密和安全性,上述交互数据还可以存储于一区块链的节点中。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在一个可选的实施例中,所述第二缓存模块205采用短周期缓存策略缓存所述应用资源包括:
将所述应用的DOM节点缓存至内存中;
当接收到应用的关闭信号时,释放所述内存中的所述DOM节点。
该可选的实施例中,由于短周期缓存策略将应用资源缓存至内存,使得当应用被关闭后内存数据会释放,因此对于单次打开期间有效,而长周期缓存策略能够保证应用启动多次缓存都有效。
所述资源映射模块206,用于当确定所述访问请求为二次访问请求时,将所述硬盘中的应用资源映射到所述内存中。
所述资源命中模块207,用于判断所述内存中是否有与所述操作信号对应的目标资源;当所述内存中有所述目标资源时,从所述内存中命中所述目标资源;当所述内存中没有所述目标资源时,从所述对应的应用服务器中获取所述目标资源。
该可选的实施例中,初次访问过后,对应用的页面的多个数据均进行了缓存,在二次访问时,不发起网络请求,即使用户完全离线,已经访问过的页面也可完全再次访问,可获得瞬间打开页面的效果,大大提高了用户的体验及用户的粘性。将硬盘中的资源映射到内存中,因此先检查相同的请求是否已经有目标资源的步骤将在内存中进行,而非每次读取硬盘,既可避免频繁的读取硬盘对硬盘造成损失,且从内存中命中目标资源的效率相比从硬盘中命中目标资源的效率更高。
在一个可选的实施例中,所述资源映射模块206将所述硬盘中的应用资源映射到所述内存中包括:
从所述硬盘中查找与所述应用对应的存储目录;
判断所述存储目录中是否存储有应用资源;
当所述存储目录中存储有应用资源时,将所述硬盘中存储的应用资源映射到所述内存中。
该可选的实施例中,当存储目录中存储有应用资源时,表明应用资源没有过期,则可将应用资源先映射到内存中,便于从内存中读取。
所述版本更新模块208,用于发送资源版本查询请求至所述应用服务器,使得所述应用服务器查询所述资源版本是否有更新;当接收到所述应用服务器返回的所述资源版本有更新的结果时,下载更新后的资源;在资源更新成功后,更新所述应用。
在该可选的实施例中,客户端的服务工作线程会向服务器请求查询静态资源版本是否有更新,如果服务器查询到静态资源有更新版本,则发送静态资源的更新版本至客户端。客户端在后台静默下载静态资源的更新版本,并在更新成功后,下一次打开应用时更新应用。或者,客户端在更新成功后,提示用户更新应用。
参阅图3所示,为本发明实施例三提供的客户端的结构示意图。在本发明较佳实施例中,所述客户端3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
本领域技术人员应该了解,图3示出的客户端的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述客户端3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述客户端3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的客户端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述客户端3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
需要说明的是,所述客户端3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31用于存储计算机程序和各种数据,例如安装在所述客户端3中的装置,并在客户端3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述客户端3的控制核心(Control Unit),利用各种接口和线路连接整个客户端3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行客户端3的各种功能和处理数据。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述客户端3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述客户端3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台客户端(可以是个人计算机或者网络设备等)或处理器(processor)执行本发明各个实施例所述应用多级缓存方法的部分。
在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述客户端3的操作装置以及安装的各类应用程序、计算机程序等,例如,上述的各个模块。
所述存储器31中存储有计算机程序,且所述至少一个处理器32可调用所述存储器31中存储的计算机程序以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的计算机程序,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能。
在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现本发明所述的应用多级缓存方法中的全部或者部分步骤。
具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种应用多级缓存方法,其特征在于,所述应用多级缓存方法包括:
响应于接收到的应用的访问请求启动所述应用,并侦测所述应用上接收到的操作信号;
判断所述访问请求是否为首次访问请求;
当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源;
当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘;
当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。
2.如权利要求1所述的应用多级缓存方法,其特征在于,所述采用长周期缓存策略缓存所述应用资源包括:
根据页面的标签标记所述应用的每一个页面的页面ID;
记录用户访问每一个页面时的交互数据,所述交互数据包括:滚动位置、交互状态及访问参数;
将所述页面ID及对应的交互数据和所述应用资源持久化至硬盘中并为所述硬盘中的交互数据设置定时器;
当所述定时器到期时,清除所述硬盘中的所述交互数据。
3.如权利要求1所述的应用多级缓存方法,其特征在于,所述采用短周期缓存策略缓存所述应用资源包括:
将所述应用的DOM节点缓存至内存中;
当接收到应用的关闭信号时,释放所述内存中的所述DOM节点。
4.如权利要求1所述的应用多级缓存方法,其特征在于,所述应用多级缓存方法还包括:
当确定所述访问请求为二次访问请求时,将所述硬盘中的应用资源映射到所述内存中;
判断所述内存中是否有与所述操作信号对应的目标资源;
当所述内存中有所述目标资源时,从所述内存中命中所述目标资源;
当所述内存中没有所述目标资源时,从所述对应的应用服务器中获取所述目标资源。
5.如权利要求4所述的应用多级缓存方法,其特征在于,所述将所述硬盘中的应用资源映射到所述内存中包括:
从所述硬盘中查找与所述应用对应的存储目录;
判断所述存储目录中是否存储有应用资源;
当所述存储目录中存储有应用资源时,将所述硬盘中存储的应用资源映射到所述内存中。
6.如权利要求1至5中任意一项所述的应用多级缓存方法,其特征在于,所述应用多级缓存方法还包括:
发送资源版本查询请求至所述应用服务器,使得所述应用服务器查询所述资源版本是否有更新;
当接收到所述应用服务器返回的所述资源版本有更新的结果时,下载更新后的资源;
在资源更新成功后,更新所述应用。
7.如权利要求1至5中任意一项所述的应用多级缓存方法,其特征在于,所述判断所述访问请求是否为首次访问请求包括:
搜索本地数据库中是否记录有所述应用的应用标识;
当没有搜索出所述应用标识时,确定所述访问请求为首次访问请求;
当搜索出所述应用标识时,确定所述访问请求不为首次访问请求。
8.一种应用多级缓存装置,其特征在于,所述应用多级缓存装置包括:
应用启动模块,用于响应于接收到的访问请求启动所述应用,并侦测所述应用上接收到的操作信号;
请求判断模块,用于判断所述访问请求是否为首次访问请求;
资源接收模块,用于当确定所述访问请求为首次访问请求时,发送所述应用的应用标识至对应的应用服务器,并接收所述应用服务器返回的所述应用的级别及与所述操作信号对应的应用资源;
第一缓存模块,用于当所述应用的级别为第一级别时,采用长周期缓存策略缓存所述应用资源至硬盘;
第二缓存模块,用于当所述应用的级别为第二级别时,采用短周期缓存策略缓存所述应用资源至内存。
9.一种客户端,其特征在于,所述客户端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至7中任意一项所述应用多级缓存方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述应用多级缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600213.3A CN111752861A (zh) | 2020-06-28 | 2020-06-28 | 应用多级缓存方法、装置、客户端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010600213.3A CN111752861A (zh) | 2020-06-28 | 2020-06-28 | 应用多级缓存方法、装置、客户端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752861A true CN111752861A (zh) | 2020-10-09 |
Family
ID=72677687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010600213.3A Pending CN111752861A (zh) | 2020-06-28 | 2020-06-28 | 应用多级缓存方法、装置、客户端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752861A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022111313A1 (zh) * | 2020-11-24 | 2022-06-02 | 深圳前海微众银行股份有限公司 | 一种请求处理方法及微服务系统 |
JP2022109211A (ja) * | 2021-01-14 | 2022-07-27 | 北京小米移動軟件有限公司 | 画像ロード方法、装置 |
-
2020
- 2020-06-28 CN CN202010600213.3A patent/CN111752861A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022111313A1 (zh) * | 2020-11-24 | 2022-06-02 | 深圳前海微众银行股份有限公司 | 一种请求处理方法及微服务系统 |
JP2022109211A (ja) * | 2021-01-14 | 2022-07-27 | 北京小米移動軟件有限公司 | 画像ロード方法、装置 |
JP7209046B2 (ja) | 2021-01-14 | 2023-01-19 | 北京小米移動軟件有限公司 | 画像ロード方法、装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2629448C2 (ru) | Система и способ управления и организации кэша веб-браузера | |
CN109491928A (zh) | 缓存控制方法、装置、终端及存储介质 | |
US6792510B1 (en) | System and method for updating a cache | |
US8239536B2 (en) | System for generic service management in a distributed and dynamic resource environment, providing constant service access to users | |
EP2077499A1 (en) | Security-level enforcement in virtual-machine fail-over | |
KR20160102552A (ko) | 구성 가능한 컴퓨팅 자원 할당 기술 | |
CN104715001A (zh) | 用于对数据处理系统的集群中的共享资源执行写入操作的方法和系统 | |
CN103067425A (zh) | 虚拟机创建方法、虚拟机管理系统及相关设备 | |
CN110795395B (zh) | 文件部署系统和文件部署方法 | |
CN105659212A (zh) | 对于分区休眠的热页的检测 | |
CN111752861A (zh) | 应用多级缓存方法、装置、客户端及存储介质 | |
WO2022057231A1 (zh) | 访问服务器的方法、装置、设备及存储介质 | |
CN107870802B (zh) | 一种虚拟机迁移方法和装置 | |
CN108111325B (zh) | 一种资源分配方法及装置 | |
CN110740155B (zh) | 分布式系统中的请求处理方法及装置 | |
CN109656886B (zh) | 基于键值对的文件系统实现方法、装置、设备和存储介质 | |
CN109582246A (zh) | 基于矿机的数据访问方法、装置、系统及可读存储介质 | |
CN105376269B (zh) | 虚拟机存储系统及其实现方法和装置 | |
CN108667744A (zh) | 流量控制方法及装置 | |
CN108777718B (zh) | 一种业务系统通过客户端访问读多写少系统的方法和装置 | |
CN114968845A (zh) | 一种缓存处理的方法、系统、设备和存储介质 | |
CN111031126B (zh) | 集群缓存共享方法、系统、设备及存储介质 | |
CN114675976B (zh) | 基于kubernetes的GPU共享方法、装置、设备及介质 | |
CN106155575A (zh) | 用于扩展存储系统的高速缓存的方法和装置 | |
CN104516744A (zh) | 软件更新方法及系统 |
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 |