一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法、装置、电子设备及存储介质与流程

2021-12-17 21:08:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。


背景技术:

2.相关技术中,浏览器可以采用应用程序缓存(application cache)和localstorage的缓存机制对前端数据进行缓存。其中,application cache是超文本标记语言5(html5,hypertext markup language 5)技术最早提供的一种缓存机制,可以通过配置manifest文件设置浏览器需要缓存的资源,从而能够使网络(web)应用程序离线运行;换句话说,在用户处于离线状态(即安装浏览器的客户端未接入网络)的情况下,即使用户点击了浏览器的刷新按钮,web应用程序也能够正常加载及运行。相较于application cache,localstorage是html5技术后续提出的用作本地存储的新特性,采用localstorage的缓存机制,浏览器可以为每一个网站创建一个长期有效的缓存文件,缓存文件可以以文本形式保存在客户端本地,从而能够解决浏览器cookie占用带宽及存储空间不足的问题。
3.然而,相关技术中,浏览器的缓存机制尚需优化。


技术实现要素:

4.为解决相关技术问题,本技术实施例提供一种数据处理方法、装置、电子设备及存储介质。
5.本技术实施例的技术方案是这样实现的:
6.本技术实施例提供了一种数据处理方法,包括:
7.获取前端页面的第一请求;所述第一请求用于请求获取目标服务器的第一数据;
8.判断索引数据库(indexdb)中是否存在未失效的第一缓存数据;所述第一缓存数据与所述第一数据相对应;
9.在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;
10.在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。
11.上述方案中,所述判断indexdb中是否存在未失效的第一缓存数据,包括:
12.利用所述第一数据对应的第一标识,判断所述indexdb中是否存在所述第一缓存数据,得到第一判断结果;
13.在所述第一判断结果表征所述indexdb中存在所述第一缓存数据的情况下,利用所述第一请求对应的至少一个第二标识,判断所述第一缓存数据是否失效,得到第二判断结果;所述第二标识表征所述第一请求对应的数据版本。
14.上述方案中,所述利用所述第一请求对应的至少一个第二标识,判断所述第一缓存数据是否失效,包括:
15.从所述indexdb获取所述第一缓存数据对应的至少一个第三标识;所述第三标识表征所述第一缓存数据对应的数据版本;
16.将所述至少一个第二标识与所述至少一个第三标识进行对比;
17.在所述至少一个第二标识与所述至少一个第三标识一致的情况下,确定所述第一缓存数据未失效;
18.在所述至少一个第二标识与所述至少一个第三标识不一致的情况下,确定所述第一缓存数据已失效。
19.上述方案中,所述从所述目标服务器获取所述第一数据,包括:
20.通过第一函数将第一配置信息注入所述第一请求,得到第二请求;所述第一配置信息包含至少一个第二标识;所述第二标识表征所述第一请求对应的数据版本;所述第二请求用于请求获取所述第一数据;
21.将所述第二请求发送至所述目标服务器;并接收所述目标服务器基于所述第二请求返回的第一数据。
22.上述方案中,所述将所述第一数据返回至所述前端页面时,所述方法还包括:
23.在所述indexdb中不存在所述第一缓存数据的情况下,利用所述第一数据生成第一缓存数据;
24.或者,
25.在所述第一缓存数据已失效的情况下,利用所述第一数据更新所述第一缓存数据。
26.上述方案中,所述利用所述第一数据生成第一缓存数据,包括:
27.基于第一预设规则对所述第一数据进行第一处理,以使所述第一处理后的第一数据满足第一预设条件;
28.利用所述第一处理后的第一数据,生成第一缓存数据。
29.上述方案中,所述前端页面处于第一工作模式;所述方法还包括:
30.判断当前的网络环境是否满足第二预设条件,并判断所述前端页面是否满足第三预设条件;
31.在当前的网络环境不满足所述第二预设条件的情况下,和/或,在所述前端页面不满足所述第三预设条件的情况下,控制所述前端页面进入所述第一工作模式;
32.在当前的网络环境满足所述第二预设条件,且所述前端页面满足所述第三预设条件的情况下,控制所述前端页面进入第二工作模式;其中,
33.在所述前端页面处于第二工作模式的情况下,从所述indexdb获取所述前端页面请求的全部数据。
34.本技术实施例还提供了一种数据处理装置,包括:
35.获取单元,用于获取前端页面的第一请求;所述第一请求用于请求获取目标服务器的第一数据;
36.处理单元,用于判断indexdb中是否存在未失效的第一缓存数据;所述第一缓存数据与所述第一数据相对应;在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。
37.本技术实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
38.其中,所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
39.本技术实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
40.本技术实施例提供的数据处理方法、装置、电子设备及存储介质,获取前端页面的第一请求;所述第一请求用于请求获取目标服务器的第一数据;判断indexdb中是否存在未失效的第一缓存数据;所述第一缓存数据与所述第一数据相对应;在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。本技术实施例的方案,利用indexdb保存浏览器的缓存数据,浏览器向服务器请求数据时,在相应缓存数据未失效的情况下直接将相应缓存数据返回至前端页面,而不需要再从服务器获取数据,如此,能够减少浏览器向服务器发送的请求数量,从而能够降低前端应用(即web应用程序)对服务器的依赖,并能够减少前端页面的加载时间,进而能够提高浏览器的使用效率。
附图说明
41.图1为本技术实施例数据处理方法的流程示意图;
42.图2为本技术应用实施例数据处理系统的数据处理流程示意图;
43.图3为本技术应用实施例数据处理系统拦截超文本传输协议(http,hyper text transfer protocol)请求的流程示意图;
44.图4为本技术应用实施例持久化数据结构示意图;
45.图5为本技术应用实施例持久化数据的生成流程示意图;
46.图6为本技术应用实施例indexdb提供数据缓存服务的工作流程示意图;
47.图7为本技术实施例数据处理装置的结构示意图;
48.图8为本技术实施例电子设备的结构示意图。
具体实施方式
49.下面结合附图及实施例对本技术再作进一步详细的描述。
50.相关技术中,虽然浏览器可以采用application cache和localstorage的缓存机制对前端数据进行缓存,但这两种缓存机制均存在缺陷。具体地,application cache相关的应用程序接口(api,application programming interface)的设计不合理,支持的功能有限且更新不及时,不支持利用javascript技术进行数据精细化控制(即对数据进行分类以使数据的粒度满足特定条件)等功能;并且,使用这些api时需要严格遵循预设的一些规则,api的灵活性及可用性较差,且具有不确定性。
51.而针对localstorage的缓存机制,该技术仅支持单一的数据类型,浏览器需要使用其他类型的数据时需要进行数据类型的转换。比如,在预先将localstorage支持的数据类型限定为字符串(string)类型的情况下,浏览器需要使用javascript对象简谱(json,javascript object notation)类型的数据时,需要将string类型的数据转换为json类型
的数据。另外,在浏览器的隐私模式下localstorage不支持数据读取,即浏览器在隐私模式下无法加载缓存数据。
52.基于此,在本技术的各种实施例中,利用indexdb保存浏览器的缓存数据,浏览器向服务器请求数据时,在相应缓存数据未失效的情况下直接将相应缓存数据返回至前端页面,而不需要再从服务器获取数据,如此,能够减少浏览器向服务器发送的请求数量,从而能够降低前端应用(即web应用程序)对服务器的依赖,并能够减少前端页面的加载时间,进而能够提高浏览器的使用效率。同时,与application cache的缓存机制相比,indexdb的相关api支持更多的功能,灵活性及可用性较好,不确定性较弱。与localstorage的缓存机制相比,indexdb具有容量优势,这使得indexdb中的缓存数据能够保存较长的时间,换句话说,能够利用indexdb实现缓存数据的持久化;并且,indexdb能够存储多样化的数据,即同时支持多种类型的数据存储,浏览器在加载数据时不需要进行数据类型的转换,能够进一步减少前端页面的加载时间;另外,indexdb不具有使用条件的限制,即使浏览器处于隐私模式,也可以读取indexdb中的缓存数据。
53.本技术实施例提供一种数据处理方法,应用于电子设备,比如手机、电脑等安装有浏览器的客户端;如图1所示,该方法包括:
54.步骤101:获取前端页面的第一请求;
55.这里,所述第一请求用于请求获取目标服务器的第一数据;
56.步骤102:判断indexdb中是否存在未失效的第一缓存数据;
57.这里,所述第一缓存数据与所述第一数据相对应,换句话说,所述第一缓存数据是利用所述第一数据生成的;
58.步骤103:在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;
59.步骤104:在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。
60.实际应用时,本技术实施例提供的数据处理方法可以通过利用javascript技术以及异步javascript和xml(ajax,asynchronous javascript and xml)技术开发的应用程序实现。
61.实际应用时,所述第一缓存数据的数据类型可以根据需求设置,换句话说,所述indexdb支持的数据类型可以根据需求设置,比如json、二进制大对象(blob,binary large object)等。
62.在步骤101中,实际应用时,所述第一请求用于请求获取目标服务器的第一数据,可以理解为所述第一请求是向所述目标服务器发送的信息;相应地,所述获取所述第一请求,可以理解为在所述第一请求发出之前拦截所述第一请求。这里,可以基于所述前端页面与所述目标服务器之间的通信方式(比如基于http通信)设置拦截所述第一请求的方式。
63.实际应用时,可以利用第一函数拦截所述第一请求,所述第一函数也可以称为请求拦截器、http拦截器等,本技术实施例对所述第一函数的名称不作限定,只要能够实现所述第一函数的功能即可。
64.在步骤102中,实际应用时,所述目标服务器存储的数据可能会被更新,换句话说,所述目标服务器存储的数据可能会发生版本变更,而一旦数据发生版本变更,所述indexdb
中相应的缓存数据就会失效。因此,可以利用所述第一请求所请求的数据对应的数据版本,即所述第一数据对应的数据版本,判断indexdb中是否存在未失效的第一缓存数据。
65.基于此,在一实施例中,所述判断indexdb中是否存在未失效的第一缓存数据,可以包括:
66.利用所述第一数据对应的第一标识,判断所述indexdb中是否存在所述第一缓存数据,得到第一判断结果;
67.在所述第一判断结果表征所述indexdb中存在所述第一缓存数据的情况下,利用所述第一请求对应的至少一个第二标识,判断所述第一缓存数据是否失效,得到第二判断结果;所述第二标识表征所述第一请求对应的数据版本。
68.实际应用时,所述第一标识可以是所述目标服务器针对所述第一数据生成的标记,比如etagid等;所述etagid是指浏览器与所述目标服务器交互过程中自动携带的参数,包括响应头(response header)中的etag以及请求头(request header)中的if

none

match。这里,获取所述第一数据对应的第一标识的方式可以根据业务需求确定,本技术实施例对比不作限定。
69.实际应用时,所述利用所述第一数据对应的第一标识,判断所述indexdb中是否存在所述第一缓存数据,可以理解为:判断所述indexdb中是否存在所述第一标识,若所述indexdb中存在所述第一标识,则可以确定所述第一判断结果表征所述indexdb中存在所述第一缓存数据;若所述indexdb中不存在所述第一标识,则可以确定所述第一判断结果表征所述indexdb中不存在所述第一缓存数据,从而可以确定所述indexdb中不存在未失效的第一缓存数据。
70.实际应用时,所述第二标识表征所述第一请求对应的数据版本,可以理解为所述第二标识表征所述第一请求所请求的数据包的版本,即所述第一数据对应的数据版本。这里,所述第二标识可以为版本号、请求时间戳、缓存过期时间等,所述第二标识的数量以及确定所述第二标识的方式可以根据业务需求确定,本技术实施例对比不作限定。
71.在一实施例中,所述利用所述第一请求对应的至少一个第二标识,判断所述第一缓存数据是否失效,可以包括:
72.从所述indexdb获取所述第一缓存数据对应的至少一个第三标识;所述第三标识表征所述第一缓存数据对应的数据版本;
73.将所述至少一个第二标识与所述至少一个第三标识进行对比;
74.在所述至少一个第二标识与所述至少一个第三标识一致的情况下,确定所述第一缓存数据未失效;
75.在所述至少一个第二标识与所述至少一个第三标识不一致的情况下,确定所述第一缓存数据已失效。
76.这里,所述第二标识的个数与所述第三标识的个数相同,具体个数值可以根据业务需求设置。
77.实际应用时,所述第一缓存数据是利用所述第一数据生成的,即在所述第一请求之前,所述前端页面从所述目标服务器请求获取过所述第一数据,利用所述第一数据生成了第一缓存数据,并利用所述第一数据对应的数据版本生成了至少一个第三标识。
78.在步骤104中,实际应用时,利用所述第一函数拦截所述第一请求后,可以将所述
至少一个第二标识注入所述第一请求,并将处理后的请求发送至所述目标服务器,以获取所述第一数据。
79.基于此,在一实施例中,所述从所述目标服务器获取所述第一数据,可以包括:
80.通过第一函数将第一配置信息注入所述第一请求,得到第二请求;所述第一配置信息包含至少一个第二标识;所述第二标识表征所述第一请求对应的数据版本;所述第二请求用于请求获取所述第一数据;
81.将所述第二请求发送至所述目标服务器;并接收所述目标服务器基于所述第二请求返回的第一数据。
82.这里,所述第一配置信息还可以包含所述第一标识。
83.实际应用时,所述第一函数具体可以将所述第一配置信息注入所述第一请求的request header。
84.实际应用时,从所述目标服务器获取到所述第一数据后,为了能够为下次请求提供数据缓存支持,可以将所述第一数据缓存或更新到所述indexdb。
85.基于此,在一实施例中,所述将所述第一数据返回至所述前端页面时,所述方法还可以包括:
86.在所述indexdb中不存在所述第一缓存数据的情况下,利用所述第一数据生成第一缓存数据;
87.或者,
88.在所述第一缓存数据已失效的情况下,利用所述第一数据更新所述第一缓存数据。
89.实际应用时,利用所述第一数据生成第一缓存数据,或利用所述第一数据更新所述第一缓存数据,能够使所述indexdb为下次请求提供数据缓存支持,从而能够提高用户使用浏览器的效率,即提高用户使用浏览器的友好度。
90.实际应用时,为了使所述indexdb能够提供更好的数据缓存支持,在利用所述第一数据生成第一缓存数据时,可以对所述第一数据进行特定处理,比如过滤、分类等。
91.基于此,在一实施例中,所述利用所述第一数据生成第一缓存数据,可以包括:
92.基于第一预设规则对所述第一数据进行第一处理,以使所述第一处理后的第一数据满足第一预设条件;
93.利用所述第一处理后的第一数据,生成第一缓存数据。
94.实际应用时,所述第一预设规则和所述第一预设条件可以根据业务需求设置,比如,所述第一处理可以是过滤处理、数据分类处理等,所述第一预设条件可以是数据粒度的相关条件,本技术实施例对此不作限定。
95.实际应用时,生成所述第一缓存数据时,还可以在所述indexdb生成并保存所述第一缓存数据对应的第二配置信息,所述第二配置信息可以包括所述第一标识及所述至少一个第三标识。
96.实际应用时,浏览器可以包含多个工作模式,在网络环境较差(比如网速低于第一阈值,所述第一阈值可以根据业务需求设置)或断网情况下,浏览器可以不与所述目标服务器交互,直接从所述indexdb读取需要的数据。
97.基于此,在一实施例中,所述前端页面可以处于第一工作模式;该方法还可以包
括:
98.判断当前的网络环境是否满足第二预设条件,并判断所述前端页面是否满足第三预设条件;
99.在当前的网络环境不满足所述第二预设条件的情况下,和/或,在所述前端页面不满足所述第三预设条件的情况下,控制所述前端页面进入所述第一工作模式;
100.在当前的网络环境满足所述第二预设条件,且所述前端页面满足所述第三预设条件的情况下,控制所述前端页面进入第二工作模式;其中,
101.在所述前端页面处于第二工作模式的情况下,从所述indexdb获取所述前端页面请求的全部数据。
102.实际应用时,在所述前端页面处于第一工作模式的情况下,利用所述第一函数拦截所述第一请求,判断所述indexdb中是否存在未失效的第一缓存数据;在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。这里,可以理解,所述第一工作模式是所述前端页面与所述目标服务器协商(即存在通信)缓存的工作模式。
103.实际应用时,所述第二预设条件和所述第三预设条件可以根据业务需求设置。示例性地,所述第二预设条件可以表征相应客户端未接入网络,或表征当前网速低于所述第一阈值;所述第三预设条件可以表征所述indexdb缓存有加载所述前端页面所需的全部数据。
104.本技术实施例提供的数据处理方法,获取前端页面的第一请求;所述第一请求用于请求获取目标服务器的第一数据;判断indexdb中是否存在未失效的第一缓存数据;所述第一缓存数据与所述第一数据相对应;在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。本技术实施例的方案,利用indexdb保存浏览器的缓存数据,浏览器向服务器请求数据时,在相应缓存数据未失效的情况下直接将相应缓存数据返回至前端页面,而不需要再从服务器获取数据,如此,能够减少浏览器向服务器发送的请求数量,从而能够降低前端应用(即web应用程序)对服务器的依赖,并能够减少前端页面的加载时间,进而能够提高浏览器的使用效率。同时,与application cache的缓存机制相比,indexdb的相关api支持更多的功能,灵活性及可用性较好,不确定性较弱。与localstorage的缓存机制相比,indexdb具有容量优势,这使得indexdb中的缓存数据能够保存较长的时间,换句话说,能够利用indexdb实现缓存数据的持久化;并且,indexdb能够存储多样化的数据,即同时支持多种类型的数据存储,浏览器在加载数据时不需要进行数据类型的转换,能够进一步减少前端页面的加载时间;另外,indexdb不具有使用条件的限制,即使浏览器处于隐私模式,也可以读取indexdb中的缓存数据。
105.下面结合应用实施例对本技术再作进一步详细的描述。
106.本应用实施例提供一种数据处理系统,如图2所示,该系统包括:请求拦截器(即上述第一函数)、缓存适配器和响应拦截器;所述缓存适配器包括增强适配器。其中,用户浏览前端页面时,前端页面会发起http请求(即上述第一请求),浏览器会执行(即调用)请求拦
截器拦截http请求,并对拦截的http请求执行派发请求处理(英文可以表示为dispatchrequest)和转换请求数据(英文可以表示为transformdata)处理。之后,浏览器使用(即调用)缓存适配器处理http请求,判断indexdb是否存在http请求对应的缓存数据(即上述第一缓存数据);若indexdb中存在相应的缓存数据,则判断相应的缓存数据是否过期(即判断相应的缓存数据是否失效);若相应的缓存数据未过期,则返回相应的缓存数据作为http请求的响应对象,并执行后续流程,即浏览器执行响应拦截器,响应拦截器转换响应数据(即响应对象)。若indexdb中不存在该http请求对应的缓存数据,浏览器使用增强适配器向后台服务器(即所述目标服务器)发送http请求,并保存浏览器基于该请求返回的响应对象,同时,向前端页面返回已保存的响应对象,以执行后续流程。另外,在相应的缓存数据已过期的情况下,浏览器也会使用增强适配器向后台服务器发送http请求,并保存浏览器基于该请求返回的响应对象(即利用该响应对象更新indexdb中相应的缓存数据),同时,向前端页面返回已保存的响应对象,以执行后续流程。
107.在本应用实施例中,增强适配器的“增强”可以理解为在应用程序的底层逻辑配合了indexdb的数据存储及使用功能。本应用实施例提供的数据处理系统,利用indexdb保存浏览器的缓存数据,由于indexdb具有容量优势,这使得indexdb中的缓存数据能够保存较长的时间,换句话说,能够利用indexdb实现缓存数据的持久化,即利用indexdb为浏览器提供可靠的持久化缓存数据,减少前端应用对服务器的依赖,提高web前端的使用效率。另外,在相应的缓存数据已过期的情况下,即在缓存数据发生版本变更的情况下,能够提高数据同步功能,将服务器返回的响应对象异步同步到indexdb,换句话说,在提供给浏览器用户正常的数据展示的同时,使用多线程的方式将同一份数据存储(即更新)到indexdb,为后续的请求提供缓存数据,从而能够提升用户的浏览体验。
108.下面对本应用实施例的数据处理系统包含的各个模块的功能进行详细说明。
109.首先,本应用实施例的数据处理系统提供http请求的拦截服务。
110.具体地,在本应用实施例中,为了达到前端数据持久化的效果,需要对http请求在发出前进行统一处理。相关技术中,通常会封装统一的请求(request)函数来为每个http请求统一添加令牌(英文可以表示为token)等信息,但后期如果需要为某些获取(get)请求设置缓存时间或者控制某些请求的调用频率,就需要不断修改request函数来扩展对应的功能,如果再考虑对响应进行统一处理,会使得request函数变得越来越庞大,也越来越难维护。为此,需要使用一种新的解决方法来对http进行中断处理,由于http协议是基于请求和响应的模式进行通信的,因此,可以通过http拦截器来实现http的中断。拦截器可以包括请求拦截器和响应拦截器,分别用于处理http请求和http响应。其中,请求拦截器的作用是:在http请求发送前统一执行一些特定操作,比如在请求头中添加token字段。响应拦截器的作用是:在接收到服务器响应后统一执行一些特定操作,比如发现响应状态码为401时,自动跳转到登录页。
111.在本应用实施例中,如图3所示,http请求主要可以包括以下流程:
112.1)处理请求配置对象。具体地,如果前端发起http请求,浏览器会启动http拦截服务,即利用请求拦截器拦截当前的http请求,向该请求的请求头注入配置信息(即上述第一配置信息);所述配置信息可以包括请求版本号、请求时间戳、缓存过期时间、etagid等。这里,所述配置信息可以理解为标识集合,etagid相当于上述第一标识;请求版本号、请求时
间戳、缓存过期时间相当于上述第二标识或第三标识;请求时间戳和缓存过期时间仅用于反映数据版本,不用于计算缓存是否过期。实际应用时,拦截的http请求的类型可以根据业务需求设置,比如get、post、put、delete等。
113.2)发起http请求。该流程可以包括派发请求处理以及转换请求数据处理。另外,如果缓存适配器通过对比该http请求注入的配置信息(即上述第一配置信息)以及indexdb中相应缓存数据对应的配置信息(即上述第二配置信息),确定相应缓存数据处于正常工作状态,即相应缓存数据未失效,则读取indexdb中的相应缓存数据,而并非是从服务器请求相应的数据。
114.3)处理响应数据对象。该流程可以包括执行响应拦截器并通过响应拦截器转换响应数据,具体可以对相应的缓存数据或服务器返回的数据进行二次处理(比如过滤、分类等),以便用户对数据进行统一操作。
115.其次,本应用实施例的数据处理系统提供持久化数据生成服务。
116.具体地,持久化的数据生成服务离不开高速缓存的实现,在计算中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求该数据时,速度要比访问数据的主存储位置快。通过缓存能够高效地重用之前检索或计算的数据。在本应用实施例中,通过以下api提供持久化数据生成服务:
117.1)indexdb.get(key),用于从indexdb中的缓存数据获取指定的键值(key)对应的值;
118.2)indexdb.delete(key),用于从indexdb中的缓存数据删除指定的key对应的值;
119.3)indexdb.clear(),用于清空已缓存的数据;
120.4)indexdb.set(key,value,maxage),用于保存键值对,同时支持设置缓存的最大时间(即最高有效时长)maxage,maxage的单位可以是毫秒。
121.示例性地,在本应用实施例中,如图5所示,持久化数据的生成流程可以包括以下步骤:
122.1)在indexdb创建或打开一个数据库;
123.2)在数据库中创建一个对象库(objectstore);
124.3)将响应拦截器的数据检索类型设置为blob;
125.4)初始化数据库事物;
126.5)将blob数据缓存到数据库中。
127.第三,本应用实施例的数据处理系统基于indexdb提供数据缓存服务,所述数据缓存服务包括两种工作模式:协商缓存工作模式(即上述第一工作模式)和强制缓存工作模式(即上述第二工作模式)。
128.其中,如图6所示,在所述协商缓存工作模式下,缓存适配器判断indexdb是否存在当前http请求对应的缓存数据;若不存在,说明浏览器第一次实现针对该http请求所请求的数据的缓存服务,需要通过增强适配器,从服务器获取响应数据,对响应数据进行精细化处理(即对数据进行分类以使数据的粒度满足特定条件),并将精细化处理后的数据写入indexdb,为下一次请求提供缓存数据。若indexdb存在当前http请求对应的缓存数据,则通过增强适配器,生成一个数据同步管理器,所述数据同步管理器用于对缓存变更(即缓存更新)进行注册,并通过增强适配器的比对管理单元进行配置信息的比对管理,即对比该请求
的配置信息(即上述第一配置信息)和indexdb中上次请求返回的缓存数据对应的配置信息(即上述第二配置信息)是否一致;若一致,则不需要更新缓存;若不一致,则需要根据所述比对管理单元预设的更新逻辑更新相应的缓存数据,即通过增强适配器,从服务器获取响应数据,并触发异步同步任务,在将响应数据呈现给用户的同时,利用响应数据更新indexdb中相应的缓存数据。这里,可以理解,所述增强适配器包括:比对管理单元、数据同步管理器和数据精细化处理单元。
129.在客户端网络环境较差(比如断网)的情况下,数据处理系统进入强制缓存工作模式。在所述强制缓存工作模式下,由indexdb缓存服务提供前端的全部请求数据,根据每个请求对应的配置信息,读取indexdb缓存服务中的精细化缓存数据。
130.本应用实施例提供的方案,具有以下优点:
131.1)基于http拦截器向http请求注入配置信息,基于增强适配器及indexdb,实现了前端数据的持久化缓存,indexdb中的缓存数据未失效时,浏览器可以直接使用已缓存的数据,而不需要发起请求从服务端获取数据,如此,不仅能够减少http请求的数量,还能够减少用户等待页面加载的时间,从而能够提升用户体验;
132.2)indexdb缓存服务能够智能更新缓存数据,在缓存数据已经失效的情况下,能够直接向后台服务器发送请求,并将返回的数据进行精细化处理后保存到indexdb,为下次请求提供数据缓存支持,从而能够提高用户使用浏览器的友好度。
133.为了实现本技术实施例的方法,本技术实施例还提供了一种数据处理装置,如图7所示,该装置包括:
134.获取单元701,用于获取前端页面的第一请求;所述第一请求用于请求获取目标服务器的第一数据;
135.处理单元702,用于判断indexdb中是否存在未失效的第一缓存数据;所述第一缓存数据与所述第一数据相对应;在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。
136.其中,在一实施例中,所述处理单元702,具体用于:
137.利用所述第一数据对应的第一标识,判断所述indexdb中是否存在所述第一缓存数据,得到第一判断结果;
138.在所述第一判断结果表征所述indexdb中存在所述第一缓存数据的情况下,利用所述第一请求对应的至少一个第二标识,判断所述第一缓存数据是否失效,得到第二判断结果;所述第二标识表征所述第一请求对应的数据版本。
139.在一实施例中,所述处理单元702,具体用于:
140.从所述indexdb获取所述第一缓存数据对应的至少一个第三标识;所述第三标识表征所述第一缓存数据对应的数据版本;
141.将所述至少一个第二标识与所述至少一个第三标识进行对比;
142.在所述至少一个第二标识与所述至少一个第三标识一致的情况下,确定所述第一缓存数据未失效;
143.在所述至少一个第二标识与所述至少一个第三标识不一致的情况下,确定所述第一缓存数据已失效。
144.在一实施例中,所述处理单元702,还用于:
145.通过第一函数将第一配置信息注入所述第一请求,得到第二请求;所述第一配置信息包含至少一个第二标识;所述第二标识表征所述第一请求对应的数据版本;所述第二请求用于请求获取所述第一数据;
146.将所述第二请求发送至所述目标服务器;并接收所述目标服务器基于所述第二请求返回的第一数据。
147.在一实施例中,将所述第一数据返回至所述前端页面时,所述处理单元702,还用于:
148.在所述indexdb中不存在所述第一缓存数据的情况下,利用所述第一数据生成第一缓存数据;
149.或者,
150.在所述第一缓存数据已失效的情况下,利用所述第一数据更新所述第一缓存数据。
151.在一实施例中,所述处理单元702,还用于:
152.基于第一预设规则对所述第一数据进行第一处理,以使所述第一处理后的第一数据满足第一预设条件;
153.利用所述第一处理后的第一数据,生成第一缓存数据。
154.在一实施例中,所述前端页面处于第一工作模式;所述处理单元702,还用于:
155.判断当前的网络环境是否满足第二预设条件,并判断所述前端页面是否满足第三预设条件;
156.在当前的网络环境不满足所述第二预设条件的情况下,和/或,在所述前端页面不满足所述第三预设条件的情况下,控制所述前端页面进入所述第一工作模式;
157.在当前的网络环境满足所述第二预设条件,且所述前端页面满足所述第三预设条件的情况下,控制所述前端页面进入第二工作模式;其中,
158.在所述前端页面处于第二工作模式的情况下,从所述indexdb获取所述前端页面请求的全部数据。
159.实际应用时,所述获取单元701和所述处理单元702可由数据处理装置中的处理器实现。
160.需要说明的是:上述实施例提供的数据处理装置在处理数据时,仅以上述各程序模块的划分进行举例说明,实际应用时,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
161.基于上述程序模块的硬件实现,且为了实现本技术实施例的方法,本技术实施例还提供了一种电子设备,如图8所示,该电子设备800包括:
162.通信接口801,能够与其他电子设备进行信息交互;
163.处理器802,与所述通信接口801连接,以实现与其他电子设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法;
164.存储器803,存储能够在所述处理器802上运行的计算机程序。
165.具体地,所述处理器802,用于:
166.获取前端页面的第一请求;所述第一请求用于请求获取目标服务器的第一数据;
167.判断indexdb中是否存在未失效的第一缓存数据;所述第一缓存数据与所述第一数据相对应;
168.在所述indexdb中存在未失效的第一缓存数据的情况下,将所述第一缓存数据返回至所述前端页面;
169.在所述indexdb中不存在未失效的第一缓存数据的情况下,从所述目标服务器获取所述第一数据,并将所述第一数据返回至所述前端页面。
170.其中,在一实施例中,所述处理器802,具体用于:
171.利用所述第一数据对应的第一标识,判断所述indexdb中是否存在所述第一缓存数据,得到第一判断结果;
172.在所述第一判断结果表征所述indexdb中存在所述第一缓存数据的情况下,利用所述第一请求对应的至少一个第二标识,判断所述第一缓存数据是否失效,得到第二判断结果;所述第二标识表征所述第一请求对应的数据版本。
173.在一实施例中,所述处理器802,具体用于:
174.从所述indexdb获取所述第一缓存数据对应的至少一个第三标识;所述第三标识表征所述第一缓存数据对应的数据版本;
175.将所述至少一个第二标识与所述至少一个第三标识进行对比;
176.在所述至少一个第二标识与所述至少一个第三标识一致的情况下,确定所述第一缓存数据未失效;
177.在所述至少一个第二标识与所述至少一个第三标识不一致的情况下,确定所述第一缓存数据已失效。
178.在一实施例中,所述处理器802,还用于:
179.通过第一函数将第一配置信息注入所述第一请求,得到第二请求;所述第一配置信息包含至少一个第二标识;所述第二标识表征所述第一请求对应的数据版本;所述第二请求用于请求获取所述第一数据;
180.将所述第二请求发送至所述目标服务器;并接收所述目标服务器基于所述第二请求返回的第一数据。
181.在一实施例中,将所述第一数据返回至所述前端页面时,所述处理器802,还用于:
182.在所述indexdb中不存在所述第一缓存数据的情况下,利用所述第一数据生成第一缓存数据;
183.或者,
184.在所述第一缓存数据已失效的情况下,利用所述第一数据更新所述第一缓存数据。
185.在一实施例中,所述处理器802,还用于:
186.基于第一预设规则对所述第一数据进行第一处理,以使所述第一处理后的第一数据满足第一预设条件;
187.利用所述第一处理后的第一数据,生成第一缓存数据。
188.在一实施例中,所述前端页面处于第一工作模式;所述处理器802,还用于:
189.判断当前的网络环境是否满足第二预设条件,并判断所述前端页面是否满足第三预设条件;
190.在当前的网络环境不满足所述第二预设条件的情况下,和/或,在所述前端页面不满足所述第三预设条件的情况下,控制所述前端页面进入所述第一工作模式;
191.在当前的网络环境满足所述第二预设条件,且所述前端页面满足所述第三预设条件的情况下,控制所述前端页面进入第二工作模式;其中,
192.在所述前端页面处于第二工作模式的情况下,从所述indexdb获取所述前端页面请求的全部数据。
193.需要说明的是:所述处理器802具体执行上述操作的过程详见方法实施例,这里不再赘述。
194.当然,实际应用时,电子设备800中的各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。
195.本技术实施例中的存储器803用于存储各种类型的数据以支持电子设备800的操作。这些数据的示例包括:用于在电子设备800上操作的任何计算机程序。
196.上述本技术实施例揭示的方法可以应用于处理器802中,或者由处理器802实现。处理器802可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器802可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器802可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器803,处理器802读取存储器803中的信息,结合其硬件完成前述方法的步骤。
197.在示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field

programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或者其他电子元件实现,用于执行前述方法。
198.可以理解,本技术实施例的存储器803可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read

only memory)、可擦除可编程只读存储器(eprom,erasable programmable read

only memory)、电可擦除可编程只读存储器(eeprom,electrically erasable programmable read

only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd

rom,compact disc read

only memory);磁
表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器旨在包括但不限于这些和任意其他适合类型的存储器。
199.在示例性实施例中,本技术实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器803,上述计算机程序可由电子设备800的处理器802执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd

rom等存储器。
200.需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
201.另外,本技术实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
202.以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献