CN111143733A - 一种本地数据缓存方法、装置、电子设备及可读存储介质 - Google Patents
一种本地数据缓存方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN111143733A CN111143733A CN201911370359.7A CN201911370359A CN111143733A CN 111143733 A CN111143733 A CN 111143733A CN 201911370359 A CN201911370359 A CN 201911370359A CN 111143733 A CN111143733 A CN 111143733A
- Authority
- CN
- China
- Prior art keywords
- data
- local
- target data
- response
- browser cache
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种应用于客户端浏览器的本地数据缓存方法,相较于现有技术先入为主的缓存容量占用机制,本申请通过请求频次和/或数据大小提供了一种可动态调整的缓存容量占用机制,在此机制下,有限容量的缓存中将存储访问频次相对较高的和/或数据大小相对较小的,使得有限容量的缓存中存储的是更倾向被用户访问的数据和/或更多条数据,更加科学、合理,有助于在整体层面减少被访问数据在客户端与服务器之间的传输操作和传输耗时,提升加速效果和用户访问体验。本申请还同时公开了一种应用于客户端浏览器的本地数据缓存装置、电子设备及可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及数据缓存技术领域,特别涉及一种本地数据缓存方法、装置、电子设备及可读存储介质。
背景技术
Browser/Server结构利用不断成熟的web浏览器技术,实现原来需要专用软件才能实现的强大功能,节约了开发成本。随着B/S结构的使用越来越多,特别是需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而减轻了服务器的负担。但是随着越来越多的前后端交互请求,用户每次点击不同页面都要进行数据更新,尤其是数据量较大的情况,有可能造成数据显示不及时,用户体验效果不佳。
对于此类性能问题,目前较为流行的方法是web前端本地存储,通过本地保存后端数据,减少交互次数,主要存储方式有cookies、sessionStorage、localStorage、webSQL等。Cookies由于存在于前后端的http请求中,而且大小仅为4k,sessionStorage在浏览器页面会话期间可用,会话结束就被删除,因此均不适合持久化存储后端数据。localStorage与webSQL都是永久存储,浏览器关闭后重新打开仍然数据存在,同时为了确保本地数据与服务端数据的一致性,一般还需要借助于websocket通信,后端数据变更后向前端发送通知,web端更新本地数据。但是localStorage和webSQL也有容量上限,一般浏览器默4M,且考虑到隐私问题,无法简单的对该存储空间的容量进行扩充。因此,对于一些容易出现大量数据频繁访问的场景(例如工作站等),4M的存储空间往往还是不足的,这就导致仅能够对先存入的4M数据进行加速,无法对更多的数据进行访问加速,且随着时间的推移原4M数据也并不一定会被再次使用到。
因此,如何在不改变容量上限的基础上,尽可能的为本地用户提供对更需要数据的加速服务,提升用户体验,是本领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种应用于客户端浏览器的本地数据缓存方法、装置、电子设备及可读存储介质,旨在不改变容量上限的基础上,尽可能的为本地用户提供对更需要数据的加速服务,使得加速服务更加合理、更加智能,切实起到加速的效果。
为实现上述目的,本申请提供了一种应用于客户端浏览器的本地数据缓存方法,包括:
接收服务器返回的响应数据;
判断所述响应数据能否直接存入本地浏览器缓存;
若无法直接存入所述本地浏览器缓存,则根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据;其中,所述目标数据为数据大小与所述本地浏览器缓存的剩余容量的和不小于所述响应数据的数据大小的数据;
若存在所述目标数据,则将所述响应数据替换目标数据存进所述本地浏览器缓存。
可选的,在根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据之前,还包括:
获取平均响应时长;
判断所述平均响应时长是否大于所述预设响应时长;
若大于所述预设响应时长,则执行所述根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据的步骤。
可选的,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据,包括:
读取所述响应数据的请求频次,得到实际频次;
判断所述本地浏览器缓存中是否存储有请求频次小于所述实际频次的第一目标数据;
若存储有所述第一目标数据,则判定存在所述目标数据;
若未存储有所述第一目标数据,则判定不存在所述目标数据;
或,
读取所述响应数据的数据大小,得到实际大小;
判断所述本地浏览器缓存中是否存储有数据大小大于所述实际大小的第二目标数据;
若存储有所述第二目标数据,则判定存在所述目标数据;
若未存储有所述第二目标数据,则判定不存在所述目标数据。
可选的,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据,包括:
读取所述响应数据的请求频次,得到实际频次;
判断所述本地浏览器缓存中是否存储有请求频次小于所述实际频次的第一目标数据;
若未存储有所述第一目标数据,则读取所述响应数据的数据大小,得到实际大小;
判断所述本地浏览器缓存中是否存储有数据大小大于所述实际大小的第二目标数据;
若未存储有所述第二目标数据,则判定不存在所述目标数据;
若存储有所述第一目标数据或所述第二目标数据,则判定存在所述目标数据。
可选的,当所述请求频次默认为首先依据进行判断的参数时,还包括:
当所述本地浏览器缓存的剩余容量小于预设容量、且存储的请求频次大于所述预设高频次的数据条数占总数据条数的比值大于预设比值时,将所述数据大小调整为下次默认首先依据进行判断的参数。
可选的,该本地数据缓存方法还包括:
接收所述服务器随所述响应数据一并返回的关联数据;其中,所述服务器预设关联方式记录有不同数据之间的关联关系;
对应的,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据,包括:
根据所述响应数据和所述关联数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据。
可选的,当所述服务器具体为本地服务器和远端服务器时,还包括:
控制所述本地服务器根据本地客户端传入的数据查询从所述远端服务器中拉取包含目标查询数据在内的关联数据集;其中,所述本地服务器距所述本地客户端较所述远端服务器拥有更短的数据传输距离,所述远端服务器中存储有较所述本地服务器数据量更大的数据。
为实现上述目的,本申请还提供了一种应用于客户端浏览器的本地数据缓存装置,包括:
响应数据接收单元,用于接收服务器返回的响应数据;
直接存入判别单元,用于判断所述响应数据能否直接存入本地浏览器缓存;
可替换数据确定单元,用于当无法直接存入所述本地浏览器缓存时,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据;其中,所述目标数据为数据大小与所述本地浏览器缓存的剩余容量的和不小于所述响应数据的数据大小的数据;
本地缓存数据更换单元,用于当存在所述目标数据时,将所述响应数据替换目标数据存进所述本地浏览器缓存。
可选的,该本地数据缓存装置还包括:
平均响应时长获取单元,用于在根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据之前,获取平均响应时长;
时长判断单元,用于判断所述平均响应时长是否大于所述预设响应时长;
目标数据判断执行单元,用于当大于所述预设响应时长时,执行所述根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据的步骤。
可选的,所述可替换数据确定单元包括:
频次读取第一子单元,用于读取所述响应数据的请求频次,得到实际频次;
频次判断第一子单元,用于判断所述本地浏览器缓存中是否存储有请求频次小于所述实际频次的第一目标数据;
目标数据存在判定第一子单元,用于当存储有所述第一目标数据时,则判定存在所述目标数据;
目标数据不存在判定第一子单元,用于当未存储有所述第一目标数据时,判定不存在所述目标数据;
或,
数据大小读取第一子单元,用于读取所述响应数据的数据大小,得到实际大小;
数据大小判断第一子单元,用于判断所述本地浏览器缓存中是否存储有数据大小大于所述实际大小的第二目标数据;
目标数据存在判定第二子单元,用于当存储有所述第二目标数据时,判定存在所述目标数据;
目标数据不存在判定第二子单元,用于当未存储有所述第二目标数据时,则判定不存在所述目标数据。
可选的,所述可替换数据确定单元包括:
频次读取第二子单元,用于读取所述响应数据的请求频次,得到实际频次;
频次判断第二子单元,用于判断所述本地浏览器缓存中是否存储有请求频次小于所述实际频次的第一目标数据;
数据大小读取第二子单元,用于当未存储有所述第一目标数据时,读取所述响应数据的数据大小,得到实际大小;
数据大小判断第二子单元,用于判断所述本地浏览器缓存中是否存储有数据大小大于所述实际大小的第二目标数据;
目标数据不存在判定第三子单元,用于当未存储有所述第二目标数据时,判定不存在所述目标数据;
目标数据存在判定第三子单元,用于当存储有所述第一目标数据或所述第二目标数据时,判定存在所述目标数据。
可选的,该本地数据缓存装置还包括:
默认判断参数调整单元,用于当所述请求频次默认为首先依据进行判断的参数时,当所述本地浏览器缓存的剩余容量小于预设容量、且存储的请求频次大于所述预设高频次的数据条数占总数据条数的比值大于预设比值时,将所述数据大小调整为下次默认首先依据进行判断的参数。
可选的,该本地数据缓存装置还包括:
关联数据接收单元,用于接收所述服务器随所述响应数据一并返回的关联数据;其中,所述服务器预设关联方式记录有不同数据之间的关联关系;
对应的,所述可替换数据确定单元包括:
可替换数据确定子单元,用于根据所述响应数据和所述关联数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据。
可选的,该本地数据缓存装置还包括:
关联数据集拉取单元,用于当所述服务器具体为本地服务器和远端服务器时,控制所述本地服务器根据本地客户端传入的数据查询从所述远端服务器中拉取包含目标查询数据在内的关联数据集;其中,所述本地服务器距所述本地客户端较所述远端服务器拥有更短的数据传输距离,所述远端服务器中存储有较所述本地服务器数据量更大的数据。
为实现上述目的,本申请还提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述内容所描述的应用于客户端浏览器的本地数据缓存方法的各步骤。
为实现上述目的,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述内容所描述的应用于客户端浏览器的本地数据缓存方法的各步骤。
本申请提供的一种应用于客户端浏览器的本地数据缓存方法包括:接收服务器返回的响应数据;判断所述响应数据能否直接存入本地浏览器缓存;若无法直接存入所述本地浏览器缓存,则根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据;其中,所述目标数据为数据大小与所述本地浏览器缓存的剩余容量的和不小于所述响应数据的数据大小的数据;若存在所述目标数据,则将所述响应数据替换目标数据存进所述本地浏览器缓存。
根据本申请提供的应用于客户端浏览器的本地数据缓存方法可以看出,相较于现有技术先入为主的缓存容量占用机制,本申请通过请求频次和/或数据大小提供了一种可动态调整的缓存容量占用机制,在此机制下,有限容量的缓存中将存储访问频次相对较高的和/或数据大小相对较小的,使得有限容量的缓存中存储的是更倾向被用户访问的数据和/或更多条数据,更加科学、合理,有助于在整体层面减少被访问数据在客户端与服务器之间的传输操作和传输耗时,提升加速效果和用户访问体验。
本申请同时还提供了一种应用于客户端浏览器的本地数据缓存装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种本地数据缓存方法的流程图;
图2为本申请实施例提供的另一种本地数据缓存方法的流程图;
图3为本申请实施例提供的一种仅基于请求频次判断是否存在目标数据的方法的流程图;
图4为本申请实施例提供的一种仅基于数据大小判断是否存在目标数据的方法的流程图;
图5为本申请实施例提供的一种分别基于请求频次和数据大小判断是否存在目标数据的方法的流程图;
图6为本申请实施例提供的一种具体的本地数据缓存方法的流程图;
图7为本申请实施例提供的一种动态缓存策略的具体实现过程的流程示意图;
图8为本申请实施例提供的一种本地数据缓存装置的结构框图。
具体实施方式
本申请的目的是提供一种应用于客户端浏览器的本地数据缓存方法、装置、电子设备及可读存储介质,旨在不改变容量上限的基础上,尽可能的为本地用户提供对更需要数据的加速服务,使得加速服务更加合理、更加智能,切实起到加速的效果。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
请参见图1,图1为本申请实施例提供的一种本地数据缓存方法的流程图,其包括以下步骤:
S101:接收服务器返回的响应数据;
本步骤旨在由客户端接收服务器返回的响应数据。需要说明的是,在本步骤之前,用户通过安装在客户端上的浏览器向服务器发起的数据访问请求,且该数据访问请求对应的数据并未存储在本地浏览器缓存中,因此无法通过本地浏览器缓存实现访问加速,只能将该数据访问请求发给服务器。服务器将通过解析数据访问请求,确定用户想要获取到的响应数据,并将该响应数据返回给客户端的浏览器,以便浏览器将响应数据呈现在用户。
S102:判断响应数据能否直接存入本地浏览器缓存,若能,执行S103,否则执行S104;
在S101的基础上,本步骤旨在由客户端浏览器判断接收到的响应数据能否直接存入本地浏览器缓存。应当理解的是,本步骤描述的直接存入本地浏览器缓存是指在不删除本地浏览器缓存中原存储的数据的基础上,直接将该响应数据存入该本地浏览器缓存,也就是说,本地浏览器缓存的剩余容量不小于该响应数据的实际数据大小。
S103:直接存入本地浏览器缓存;
本步骤建立在S102的判断结果为响应数据能够直接存入本地浏览器缓存的基础上,因此只需要常规方式直接将响应数据存入本地浏览器缓存即可。
S104:根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据,若存在,执行S106,否则执行S105;
其中,目标数据为数据大小与本地浏览器缓存的剩余容量的和不小于响应数据的数据大小的数据,假定当前本地浏览器缓存的剩余容量为200KB,响应数据的大小为220KB,则数据大小最小为20KB的数据就可以被判别为属于目标数据。
本步骤建立在S102的判断结果为响应数据无法直接存入本地浏览器缓存的基础上,因此本步骤旨在根据响应数据的属性(请求频次和/或数据大小)确定本地浏览器缓存中是否存在可替换的目标数据。之所以选择请求频次和数据大小作为两个用于判别是否存在可替换的目标数据的属性,是因为本地浏览器缓存容量较小且容量固定,表征数据热度即被访问到的概率以及直接影响该本地浏览器缓存能够存储多少个不同数据的这两个特征,无疑是能够切实的影响本地浏览器缓存中存储的数据能否起到访问加速效果的两个重要属性。
具体的,和/或的关系可具体包括三种表现形式:
(1)仅根据响应数据的请求频次确定本地浏览器缓存中是否存在可替换的目标数据,一种包括但不限于的实现方式可参见如图2所示的流程图:
S201:读取响应数据的请求频次,得到实际频次;
S202:判断本地浏览器缓存中是否存储有请求频次小于实际频次的第一目标数据,若存在,执行S203,否则执行S204;
S203:判定存在目标数据;
S204:判定不存在目标数据。
即通过以实际请求频次更高的响应数据替换掉本地浏览器缓存中存储的请求频次更低的目标数据,从而让本地浏览器缓存中存储的数据都是请求频次相对较高的数据,从而提升被使用到访问加速服务的次数。
(2)仅根据响应数据的数据大小确定本地浏览器缓存中是否存在可替换的目标数据,一种包括但不限于的实现方式可参见如图3所示的流程图:
S301:读取响应数据的数据大小,得到实际大小;
S302:判断本地浏览器缓存中是否存储有数据大小大于实际大小的第二目标数据,若存在,执行S303,否则执行S304;
S303:判定存在目标数据;
S304:判定不存在目标数据。
即通过以数据大小更小的响应数据替换掉本地浏览器缓存中存储的数据大小更大的目标数据。之所以这样做,是因为在容量小且有限的本地浏览器缓存中,能存储更多数量大小较小的数据,而数据数量更多也就意味着有更大的概率被用于实现访问加速。
(3)根据响应数据的访问频次和数据大小确定本地浏览器缓存中是否存在可替换的目标数据,一种包括但不限于的实现方式可参见如图4所示的流程图:
S401:读取响应数据的请求频次,得到实际频次;
S402:判断本地浏览器缓存中是否存储有请求频次小于实际频次的第一目标数据,若存在,执行S405,否则执行S403;
S403:判断本地浏览器缓存中是否存储有数据大小大于实际大小的第二目标数据,若存在,执行S405,否则执行S404;
S404:判定不存在目标数据;
S405:判定存在目标数据。
如图4所示的流程图给出了一种依次判别的实现方式,当然,除了依次判别的方式外,也可以在计算资源足够的情况下使用分别、同时判别,两者目的相同,都是通过同时使用两种属性作为判据,得以通过不同的角度找到目标数据。
进一步的,根据图4所示的依次判别方式,可以看出默认首个进行判别的属性为请求频次,第二个进行判别的属性才是数据大小,但是这个判别次序并非是不可调的。当请求频次默认为首先依据进行判断的参数时,如果满足本地浏览器缓存的剩余容量小于预设容量、且存储的请求频次大于预设高频次的数据条数占总数据条数的比值大于预设比值的前提时,可以将数据大小调整为下次默认首先依据进行判断的参数。也就是说,由于满足这一前提,请求频次已经不值得作为首个进行判别的属性,如果其仍作为首个判别的属性,很大可能上都仍需要通过第二个属性才能判别出目标数据,那个首次判断只不过是在做无效计算,因此此时就可以将下次首个进行判别的属性调整为数据大小。同理,如果数据大小默认为首次依据进行判别的参数,在合适的场景下也可以作为相应的调整。
S105:不做处理;
本步骤建立在S104的判断结果为根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中不存在可替换的目标数据的基础上,在不存在目标数据的情况下,也就说明已存储在本地浏览器缓存中的数据都比响应数据更合适,因此无需进行处理,保持本地浏览器缓存中存储的数据不变即可。
S106:将响应数据替换目标数据存进本地浏览器缓存。
本步骤建立在S104的判断结果为根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中存在可替换的目标数据的基础上,既然经确定存在目标数据,说明响应数据至少在一个影响访问加速情况的方面比已存储在本地浏览器缓存中的数据更合适,因此将响应数据替换目标数据存进本地浏览器缓存。具体的,替换操作可以由先删除后存入两步骤实现,也可以直接通过覆盖实现。
根据本实施例提供的应用于客户端浏览器的本地数据缓存方法可以看出,相较于现有技术先入为主的缓存容量占用机制,本申请通过请求频次和/或数据大小提供了一种可动态调整的缓存容量占用机制,在此机制下,有限容量的缓存中将存储访问频次相对较高的和/或数据大小相对较小的,使得有限容量的缓存中存储的是更倾向被用户访问的数据和/或更多条数据,更加科学、合理,有助于在整体层面减少被访问数据在客户端与服务器之间的传输操作和传输耗时,提升加速效果和用户访问体验。
在上述实施例的基础上,区别于已存储于本地浏览器缓存中的数据所拥有的属性,是否能够切实起到访问加速的效果,还与当前网络质量密切相关,因为网络质量将直接影响客户端与服务器之间进行数据交换所需的时间,网络质量越差也就意味着相同大小的数据需要花费更长的时间被读取至客户端。在这种场景下,如果本地浏览器缓存中存储的都是用户所需的,就能够通过本地读取免除较差的网络市场对访问的影响,给予用户最好的使用体验。因此,此种情况下,网络质量将作为一个优先于请求频次和数据大小的参数参与判别。一种包括但不限于的实现方式可参见如图5所示的流程图:
S501:获取平均响应时长;
应当理解的是,响应时长是指从客户端发起数据访问请求到接收到服务器返回的响应数据的总时长,而平均响应时长则是对一段时间内与发起的多个数据访问请求对应的各响应时长求取均值后得到的时长,更能够准确的表征当前时段的网络质量。
S502:判断平均响应时长是否大于预设响应时长,若是,执行S503,否则执行S504;
其中,该预设响应时长是一个预设的临界于网络质量好与不好的具体时长。具体的,在大多数场景下,该预设响应时长可以设置为300毫秒,即如果平均响应市场小于300毫秒,则说明当前网络质量较好,300毫秒的响应时间下完全不需要通过本地缓存来实现访问加速。
S503:根据响应数据的响应时长确定本地浏览器缓存中是否存在可替换的目标数据;
本步骤建立在S502的判断结果为平均响应时长大于预设响应时长的基础上,说明当前网络质量较差,需要根据响应数据的响应时长来确定本地浏览器缓存中是否存在可替换的目标数据。
S504:根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据。
本步骤建立在S502的判断结果为平均响应时长不大于预设响应时长的基础上,说明当前的网络质量较差,更适合根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据。
进一步的,为了尽可能的实现访问加速,还可以通过与数据访问请求对应的响应数据之间的数据关联性来一次性多向客户端返回一些数据,以能够减少客户端频繁向服务器发起请求,从而实现访问加速的目的。
具体的,在接收服务器返回的响应数据之后,还可以由客户端接收服务器随响应数据一并返回的关联数据,对应的,S104也将对应变为根据响应数据和关联数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据。
其中,服务器预设关联方式记录有不同数据之间的关联关系,该预设关联方式可以为访问关联、空间关联、类型关联等多种方式。还应当理解的是,为能够使服务器一并返回除响应数据之外的关联数据,还需要预先对服务器进行相应的配置,并要求服务器预先记录有能够表征各不同数据是否存在关联性的参数。
另外,在某些应用场景下,服务器并不是单一的服务器,而是还可以分为距离客户端相对较近的本地服务器和远端服务器,且远端服务器中存储有较本地服务器数据量更大的数据,例如医疗诊断数据,每个医院都有存放自己诊断数据的本地服务器,远端服务器则存储着多个国家多个医院的全部医疗数据。
当客户端向本地服务器请求的响应数据未存储在本地服务器时,本地服务器还需要再从远端服务器中拉取,才能再返回给客户端。在这一场景下可以发现,实现访问加速效果还可以从减少本地服务器与远端服务器之间的数据交换次数来实现,一种包括但不限于的实现方式为:
控制本地服务器根据本地客户端传入的数据查询请求从远端服务器中拉取包含目标查询数据在内的关联数据集。即类似于由上述实施例描述的由服务器随响应数据一并将关联数据也返回给客户端的方案,在本地服务器接收到本地客户端传入的数据查询请求时,同时从远端服务器拉取与该数据查询请求对应的响应数据存在关联的多个数据,即形成了由多个数据组成的关联数据集,从而减少了两者之间的交互次数,实现访问加速的效果。
为加深对本方案的理解,本申请还结合具体应用场景,给出了一种更为具体的实现方式,请对应参见如图6所示的流程示意图:
(1)客户端浏览器中的前端拦截器会拦截所有发起的http请求,然后判断该请求是否在本地存储的请求记录中;
(2)如果存在,则直接从localstorage/webSQL(即本地浏览器缓存)中读取数据,进而更新页面;
(3)如果不存在,前端拦截器取消拦截,直接向后端服务器发送本次请求,后端服务器返回响应数据后,根据该响应数据更新页面;
(4)客户端浏览器判断当前本地浏览器缓存的存储空间是否已满;
(5)如果为存满、可以保存最新接收到响应数据,则直接将最新接收到的响应数据存入该本地浏览器缓存中;
(6)如果本地浏览器缓存的存储空间不足,则执行动态缓存策略,根据设定的缓存策略将优先级最低的数据删除,将新接收到的响应数据保存到localstorage/webSQL中;
需要说明的是,此处所描述的动态缓存策略则是由请求响应时间、请求频次以及数据大小三个属性按照不同的优先级制定出的判别策略,旨在根据不同的情况找到最合适的判据来寻找目标数据。
(7)客户端通过websocket服务监听后端服务器中出现的数据变更事件,后端服务器发生的数据变化会向前端客户端推送相应消息,客户端会查询相关模块数据,重新从步骤(3)开始执行。
其中,动态缓存策略可以根据实际情况设计调整,这里举例说明动态缓存策略的实施方式如下其中各个指标优先级可以动态调整,请参见如图7所示的流程示意图:
1.设置各指标优先级与阈值,例如指标1响应时间阈值V1:300ms,指标2用户访问频次阈值V2:3次/天,请求数据大小阈值V3:100K;
2.判断本地数据中是否存在指标1超过阈值V1数据;
3.如果存在,保留超过指标V1的该数据,将不超过V1的所有数据按照指标2进行排序,删除排序靠后的部分数据,确保所有数据不超过本地存储空间;
4.如果不存在超过指标1阈值V1的数据,判断本地数据中是否存在超过指标2的阈值V2数据;
5.如果存在,将该数据保留,将不超过V2的所有数据按照指标3排序,删除部分排序靠后数据,确保所有数据的总大小不超过本地浏览器缓存的总容量;
6.如果不存在,直接按照指标3排序,删除部分排序靠后数据,确保所有数据的总大小不超过本地浏览器缓存的总容量。
因为情况复杂,无法一一列举进行阐述,本领域技术人员应能意识到根据本申请提供的基本方法原理结合实际情况可以存在很多的例子,在不付出足够的创造性劳动下,应均在本申请的保护范围内。
下面请参见图8,图8为本申请实施例提供的一种本地数据缓存装置的结构框图,该装置可以包括:
响应数据接收单元100,用于接收服务器返回的响应数据;
直接存入判别单元200,用于判断响应数据能否直接存入本地浏览器缓存;
可替换数据确定单元300,用于当无法直接存入本地浏览器缓存时,根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据;其中,目标数据为数据大小与本地浏览器缓存的剩余容量的和不小于响应数据的数据大小的数据;
本地缓存数据更换单元400,用于当存在目标数据时,将响应数据替换目标数据存进本地浏览器缓存。
进一步的,该本地数据缓存装置还可以包括:
平均响应时长获取单元,用于在根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据之前,获取平均响应时长;
时长判断单元,用于判断平均响应时长是否大于预设响应时长;
目标数据判断执行单元,用于当大于预设响应时长时,执行根据响应数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据的步骤。
其中,该可替换数据确定单元300可以包括:
频次读取第一子单元,用于读取响应数据的请求频次,得到实际频次;
频次判断第一子单元,用于判断本地浏览器缓存中是否存储有请求频次小于实际频次的第一目标数据;
目标数据存在判定第一子单元,用于当存储有第一目标数据时,则判定存在目标数据;
目标数据不存在判定第一子单元,用于当未存储有第一目标数据时,判定不存在目标数据;
或,
数据大小读取第一子单元,用于读取响应数据的数据大小,得到实际大小;
数据大小判断第一子单元,用于判断本地浏览器缓存中是否存储有数据大小大于实际大小的第二目标数据;
目标数据存在判定第二子单元,用于当存储有第二目标数据时,判定存在目标数据;
目标数据不存在判定第二子单元,用于当未存储有第二目标数据时,则判定不存在目标数据。
其中,该可替换数据确定单元300可以包括:
频次读取第二子单元,用于读取响应数据的请求频次,得到实际频次;
频次判断第二子单元,用于判断本地浏览器缓存中是否存储有请求频次小于实际频次的第一目标数据;
数据大小读取第二子单元,用于当未存储有第一目标数据时,读取响应数据的数据大小,得到实际大小;
数据大小判断第二子单元,用于判断本地浏览器缓存中是否存储有数据大小大于实际大小的第二目标数据;
目标数据不存在判定第三子单元,用于当未存储有第二目标数据时,判定不存在目标数据;
目标数据存在判定第三子单元,用于当存储有第一目标数据或第二目标数据时,判定存在目标数据。
进一步的,该本地数据缓存装置还可以包括:
默认判断参数调整单元,用于当请求频次默认为首先依据进行判断的参数时,当本地浏览器缓存的剩余容量小于预设容量、且存储的请求频次大于预设高频次的数据条数占总数据条数的比值大于预设比值时,将数据大小调整为下次默认首先依据进行判断的参数。
更进一步的,该本地数据缓存装置还可以包括:
关联数据接收单元,用于接收服务器随响应数据一并返回的关联数据;其中,服务器预设关联方式记录有不同数据之间的关联关系;
对应的,该可替换数据确定单元300可以包括:
可替换数据确定子单元,用于根据响应数据和关联数据的请求频次和/或数据大小确定本地浏览器缓存中是否存在可替换的目标数据。
更进一步的,该本地数据缓存装置还可以包括:
关联数据集拉取单元,用于当服务器具体为本地服务器和远端服务器时,控制本地服务器根据本地客户端传入的数据查询从远端服务器中拉取包含目标查询数据在内的关联数据集;其中,本地服务器距本地客户端较远端服务器拥有更短的数据传输距离,远端服务器中存储有较本地服务器数据量更大的数据。
基于上述实施例,本申请还提供了一种电子设备,该电子设备可以包括存储器和处理器,其中,该存储器中存有计算机程序,该处理器调用该存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然,该电子设备还可以包括各种必要的网络接口、电源以及其它零部件等。
本申请还提供了一种可读存储介质,其上存有计算机程序,该计算机程序被执行终端或处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种本地数据缓存方法,其特征在于,应用于客户端浏览器,包括:
接收服务器返回的响应数据;
判断所述响应数据能否直接存入本地浏览器缓存;
若无法直接存入所述本地浏览器缓存,则根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据;其中,所述目标数据为数据大小与所述本地浏览器缓存的剩余容量的和不小于所述响应数据的数据大小的数据;
若存在所述目标数据,则将所述响应数据替换目标数据存进所述本地浏览器缓存。
2.根据权利要求1所述的本地数据缓存方法,其特征在于,在根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据之前,还包括:
获取平均响应时长;
判断所述平均响应时长是否大于所述预设响应时长;
若大于所述预设响应时长,则执行所述根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据的步骤。
3.根据权利要求1或2所述的本地数据缓存方法,其特征在于,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据,包括:
读取所述响应数据的请求频次,得到实际频次;
判断所述本地浏览器缓存中是否存储有请求频次小于所述实际频次的第一目标数据;
若存储有所述第一目标数据,则判定存在所述目标数据;
若未存储有所述第一目标数据,则判定不存在所述目标数据;
或,
读取所述响应数据的数据大小,得到实际大小;
判断所述本地浏览器缓存中是否存储有数据大小大于所述实际大小的第二目标数据;
若存储有所述第二目标数据,则判定存在所述目标数据;
若未存储有所述第二目标数据,则判定不存在所述目标数据。
4.根据权利要求1或2所述的本地数据缓存方法,其特征在于,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据,包括:
读取所述响应数据的请求频次,得到实际频次;
判断所述本地浏览器缓存中是否存储有请求频次小于所述实际频次的第一目标数据;
若未存储有所述第一目标数据,则读取所述响应数据的数据大小,得到实际大小;
判断所述本地浏览器缓存中是否存储有数据大小大于所述实际大小的第二目标数据;
若未存储有所述第二目标数据,则判定不存在所述目标数据;
若存储有所述第一目标数据或所述第二目标数据,则判定存在所述目标数据。
5.根据权利要求4所述的本地数据缓存方法,其特征在于,当所述请求频次默认为首先依据进行判断的参数时,还包括:
当所述本地浏览器缓存的剩余容量小于预设容量、且存储的请求频次大于所述预设高频次的数据条数占总数据条数的比值大于预设比值时,将所述数据大小调整为下次默认首先依据进行判断的参数。
6.根据权利要求1所述的本地数据缓存方法,其特征在于,还包括:
接收所述服务器随所述响应数据一并返回的关联数据;其中,所述服务器预设关联方式记录有不同数据之间的关联关系;
对应的,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据,包括:
根据所述响应数据和所述关联数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据。
7.根据权利要求1所述的本地数据缓存方法,其特征在于,当所述服务器具体为本地服务器和远端服务器时,还包括:
控制所述本地服务器根据本地客户端传入的数据查询从所述远端服务器中拉取包含目标查询数据在内的关联数据集;其中,所述本地服务器距所述本地客户端较所述远端服务器拥有更短的数据传输距离,所述远端服务器中存储有较所述本地服务器数据量更大的数据。
8.一种本地数据缓存装置,其特征在于,应用于客户端浏览器,包括:
响应数据接收单元,用于接收服务器返回的响应数据;
直接存入判别单元,用于判断所述响应数据能否直接存入本地浏览器缓存;
可替换数据确定单元,用于当无法直接存入所述本地浏览器缓存时,根据所述响应数据的请求频次和/或数据大小确定所述本地浏览器缓存中是否存在可替换的目标数据;其中,所述目标数据为数据大小与所述本地浏览器缓存的剩余容量的和不小于所述响应数据的数据大小的数据;
本地缓存数据更换单元,用于当存在所述目标数据时,将所述响应数据替换目标数据存进所述本地浏览器缓存。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在执行所述计算机程序时实现如权利要求1至7任一项所述的本地数据缓存方法的各步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时可实现如权利要求1至7任一项所述的本地数据缓存方法的各步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911370359.7A CN111143733A (zh) | 2019-12-26 | 2019-12-26 | 一种本地数据缓存方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911370359.7A CN111143733A (zh) | 2019-12-26 | 2019-12-26 | 一种本地数据缓存方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111143733A true CN111143733A (zh) | 2020-05-12 |
Family
ID=70520552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911370359.7A Withdrawn CN111143733A (zh) | 2019-12-26 | 2019-12-26 | 一种本地数据缓存方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111143733A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113609043A (zh) * | 2021-06-20 | 2021-11-05 | 山东云海国创云计算装备产业创新中心有限公司 | 一种i2c主机的数据传输方法、装置、设备及可读介质 |
WO2021244070A1 (zh) * | 2020-06-05 | 2021-12-09 | 苏州浪潮智能科技有限公司 | 一种基于b/s架构的页面缓存的方法、装置、设备和介质 |
CN116405475A (zh) * | 2023-06-05 | 2023-07-07 | 山东云科汉威软件有限公司 | 一种基于Web浏览器的电子设备数据传输平台及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253234B1 (en) * | 1997-10-17 | 2001-06-26 | International Business Machines Corporation | Shared web page caching at browsers for an intranet |
US20020184448A1 (en) * | 2001-05-29 | 2002-12-05 | Ludmila Cherkasova | Method for cache replacement of web documents |
CN101714161A (zh) * | 2009-12-23 | 2010-05-26 | 上海全景数字技术有限公司 | 一种嵌入式浏览器缓存装置和方法 |
CN102624689A (zh) * | 2011-11-28 | 2012-08-01 | 苏州奇可思信息科技有限公司 | 服务器本地文件缓存优先的客户端代理上网方法 |
-
2019
- 2019-12-26 CN CN201911370359.7A patent/CN111143733A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6253234B1 (en) * | 1997-10-17 | 2001-06-26 | International Business Machines Corporation | Shared web page caching at browsers for an intranet |
US20020184448A1 (en) * | 2001-05-29 | 2002-12-05 | Ludmila Cherkasova | Method for cache replacement of web documents |
CN101714161A (zh) * | 2009-12-23 | 2010-05-26 | 上海全景数字技术有限公司 | 一种嵌入式浏览器缓存装置和方法 |
CN102624689A (zh) * | 2011-11-28 | 2012-08-01 | 苏州奇可思信息科技有限公司 | 服务器本地文件缓存优先的客户端代理上网方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021244070A1 (zh) * | 2020-06-05 | 2021-12-09 | 苏州浪潮智能科技有限公司 | 一种基于b/s架构的页面缓存的方法、装置、设备和介质 |
CN113609043A (zh) * | 2021-06-20 | 2021-11-05 | 山东云海国创云计算装备产业创新中心有限公司 | 一种i2c主机的数据传输方法、装置、设备及可读介质 |
CN116405475A (zh) * | 2023-06-05 | 2023-07-07 | 山东云科汉威软件有限公司 | 一种基于Web浏览器的电子设备数据传输平台及方法 |
CN116405475B (zh) * | 2023-06-05 | 2023-08-18 | 山东云科汉威软件有限公司 | 一种基于Web浏览器的电子设备数据传输平台及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143733A (zh) | 一种本地数据缓存方法、装置、电子设备及可读存储介质 | |
US10455013B2 (en) | Peer-to-peer upload scheduling | |
US20080133830A1 (en) | Efficient utilization of cache servers in mobile communication system | |
CN106534243B (zh) | 基于http协议的缓存、请求、响应方法及相应装置 | |
EP1429517B1 (en) | Access relaying apparatus | |
CN103974057B (zh) | 一种视频质量用户体验值测评方法、设备及系统 | |
KR20070117874A (ko) | 이동망 시스템의 능동적 캐쉬 제어 방법, 그 기록 매체 및그 시스템 | |
CN111737616B (zh) | 一种基于b/s架构的页面缓存的方法、装置、设备和介质 | |
WO2022016861A1 (zh) | 一种热点数据缓存方法、系统及相关装置 | |
CN104702592B (zh) | 流媒体下载方法和装置 | |
CN105512053A (zh) | 移动透明计算系统服务器端多用户访问的镜像缓存方法 | |
CN106021126B (zh) | 缓存数据处理方法及服务器、配置设备 | |
CN110134896A (zh) | 一种代理服务器的监控过程及智能缓存方法 | |
CN108429777A (zh) | 一种基于缓存的数据更新方法及服务器 | |
CN108846052A (zh) | 一种浏览器缓存数据更新方法及相关装置 | |
CN111221469A (zh) | 同步缓存数据的方法、装置和系统 | |
CN109040153B (zh) | 缓存内容的缓存方法、相关设备和计算机可读存储介质 | |
CN109086158A (zh) | 一种异常原因分析方法、装置及服务器 | |
CN113590027B (zh) | 数据存储方法、数据获取方法、系统、设备和介质 | |
CN112600897B (zh) | 智能设备的多用户接入控制方法及装置 | |
CN104168174A (zh) | 一种传输信息的方法及装置 | |
CN109769005A (zh) | 一种网络请求的数据缓存方法及数据缓存系统 | |
CN103838682B (zh) | 一种文件目录的读取方法和设备 | |
CN103685179A (zh) | 一种内容压缩方法、装置及系统 | |
CN113407876B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200512 |