缓存数据共享方法及装置、设备、计算机可读存储介质与流程

    专利2022-07-07  107


    本申请涉及缓存领域,尤其涉及一种缓存数据共享方法及装置、设备、计算机可读存储介质。



    背景技术:

    目前的一些终端,例如金融交易系统的终端,其中配置了c/s和b/s两种类型的框架。简单而言,c/s是指客户端和服务端,客户端有自身的处理逻辑和本地访问等功能。b/s是浏览器和服务器,所有的数据和内容都需要从服务器获取。

    b/s框架为了解决一些用户体验和性能等问题,需要在浏览器建立缓存数据来满足业务需求,同时c/s部分的业务处理也有自身的缓存数据。如图1所示,b/s框架利用web缓存机制,c/s框架利用c/s缓存机制,即两种框架独立地运行缓存机制。

    而实际中,可能同类型的业务处理需要的缓存数据是一致的,这就导致c/s框架和b/s框架在终端存在重复的缓存数据,从而导致内存占用量过大。



    技术实现要素:

    本申请提供了一种缓存数据共享方法及装置、设备、计算机可读存储介质,目的在于解决的因缓存数据重复而导致的内存占用量过大的问题。

    为了实现上述目的,本申请提供了以下技术方案:

    一种缓存数据共享方法,包括:

    响应于运行于b/s框架的浏览器的查询请求,获取第一查询报文,所述第一查询报文用于所述浏览器获取缓存数据;

    使用预先建立的链路,将所述第一查询报文发送至c/s框架,所述链路包括第一链路和第二链路,所述第一链路由所述b/s框架连接至终端的预设端口,所述第二链路由所述预设端口连接至所述c/s框架;

    将所述第一查询报文转换为可被c/s框架解析的第二查询报文;

    使用所述链路,将所述c/s框架发送的缓存数据发送至所述b/s框架的浏览器,所述缓存数据由所述c/s框架依据所述第二查询报文,从所述c/s框架的缓存中查询得到。

    可选的,所述链路的建立过程包括:

    在所述浏览器和所述c/s框架中分别封装预设的通信客户端;

    在所述通信客户端中配置所述预设端口,以分别创建所述第一链路和所述第二链路。

    可选的,在所述浏览器中封装所述预设的通信客户端包括:

    在所述浏览器的第一前端框架中封装所述预设的通信客户端。

    可选的,还包括:

    监测所述链路的连接状态;

    在所述连接状态为断开的情况下,重新建立所述链路;和/或,在所述连接状态为异常的情况下,发出异常提示信息。

    可选的,将所述第一查询报文转换为第二查询报文,包括:

    将所述第一查询报文从第一格式转换为第二格式;其中,所述第一格式为所述b/s框架格式,所述第二格式为所述c/s框架格式;

    依据预设的对应关系,将所述第一查询报文指示的所述b/s框架的查询方法,转换为所述c/s框架的查询方法,所述对应关系为所述b/s框架中的方法,与所述c/s框架中实现相同功能的方法对应关系。

    可选的,在所述响应于浏览器的查询请求,获取第一查询报文之前,还包括:

    在所述浏览器的第一前端框架中封装第一方法集合,在所述c/s框架中封装第二方法集合,所述第一方法集合中的方法用于实现所述缓存数据共享方法中针对所述浏览器的各个步骤,所述第二方法集合中的方法用于实现所述缓存数据共享方法中针对所述c/s框架的各个步骤。

    可选的,还包括:

    为所述浏览器的页面配置调用权限,所述调用权限为调用所述第一方法集合中的方法的权限。

    一种缓存数据共享装置,包括:

    获取模块,用于响应于运行于b/s框架的浏览器的查询请求,获取第一查询报文,所述第一查询报文用于所述浏览器获取缓存数据;

    发送模块,用于使用预先建立的链路,将所述第一查询报文发送至c/s框架,所述链路包括第一链路和第二链路,所述第一链路由所述b/s框架连接至终端的预设端口,所述第二链路由所述预设端口连接至所述c/s框架;

    转换模块,用于将所述第一查询报文转换为可被c/s框架解析的第二查询报文;

    所述发送模块还用于,使用所述链路,将所述c/s框架发送的缓存数据发送至所述b/s框架的浏览器,所述缓存数据由所述c/s框架依据所述第二查询报文,从所述c/s框架的缓存中查询得到。

    一种缓存数据共享设备,包括:

    存储器和处理器;

    所述存储器用于存储程序,所述处理器用于运行所述程序,以实现上述的缓存数据共享方法。

    一种计算机可读存储介质,其上存储有程序,在所述程序在计算设备上运行时,实现上述的缓存数据共享方法。

    本申请所述的缓存数据共享方法及装置、设备、计算机可读存储介质,响应于运行于b/s框架的浏览器的查询请求,获取用于所述浏览器获取缓存数据的第一查询报文,将第一查询报文转换为可被c/s框架解析的第二查询报文,使用预先建立的链路,将第二查询报文发送至c/s框架,链路包括第一链路和第二链路,第一链路由b/s框架连接至终端的预设端口,第二链路由预设端口连接至c/s框架。使用链路,将c/s框架发送的缓存数据发送至b/s框架的浏览器,缓存数据由c/s框架依据第二查询报文,从c/s框架的缓存中查询。可见,在b/s框架和c/s框架之间建立了通信链路,使得b/s框架能够从c/s框架获取缓存数据,而无需在b/s框架中设置缓存,所以有利于降低内存的占用量。

    附图说明

    为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为b/s框架和c/s框架独立运行缓存机制的示例图;

    图2为本申请实施例公开的一种缓存数据获取方法的流程图;

    图3为本申请实施例公开的缓存共享方法的应用后场景示意图;

    图4为本申请实施例公开的又一种缓存数据的共享方法的流程图;

    图5为本申请实施例公开的又一种缓存数据的共享方法的流程图;

    图6为在两端分别封装方法集合,并且多个页面通过配置共享第一方法集合的示例;

    图7为本申请实施例公开的一种缓存数据共享装置的结构示意图。

    具体实施方式

    本申请实施例公开的缓存数据共享方法,适应于混合型框架终端,即终端中运行b/s框架和c/s框架。目的在于,建立两种框架之间的通信链路,使得b/s框架可以从c/s框架中获取缓存数据,从而避免缓存数据的重复存储,以节约内存空间。

    下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

    图2为本申请实施例公开的一种缓存数据获取方法,包括以下步骤:

    s201、响应于浏览器的查询请求,获取第一查询报文。

    其中,第一查询报文用于浏览器获取缓存数据。

    通常,浏览器页面的查询请求,可以由浏览器上的操作触发,例如,用户在浏览器中显示的某个页面点击某个控件(例如按钮),触发浏览器发出页面的查询请求。进一步的,第一查询报文可以使用json格式组装,第一查询报文的具体数据结构以及组装方式,均可以参见现有技术,这里不再赘述。

    s202、使用预先建立的链路,将第一查询报文发送至c/s框架。

    本实施例中,链路包括第一链路和第二链路,其中,第一链路由b/s框架连接至终端的预设端口。第二链路由所述预设端口连接至所述c/s框架。可以理解的是,s202中,使用第一链路将查询报文发送至预设端口,因为第一链路与第二链路通过第一端口连接,所以,查询报文可以再经由第二链路发送至c/s框架。

    s203、将第一查询报文转换为可被c/s框架解析的第二查询报文。

    因为b/s框架与c/s框架不同,所以第一查询报文需要进行转换,才可以被c/s框架解析。具体的转换方式,将在以下实施例中说明。

    c/s框架响应于从预先建立的链路接收的第二查询报文,通过解析第二查询报文,从缓存中查询缓存数据。再使用第二链路,发送缓存数据。

    s204、使用链路,将c/s框架发送的缓存数据发送至b/s框架的浏览器。

    从图1所示的流程可以看出,因为b/s框架和c/s框架之间建立了通信链路,所以b/s框架的浏览器可以从c/s框架从查询缓存数据,因此,可以仅在c/s框架中设置缓存,而b/s框架的浏览器中可以不再设置缓存,从而减小内存的占用量。

    图3为本实施例所述的缓存共享方法的应用后场景示意图,与图1相比,相当于在b/s框架和c/s框架之间设置了数据转发以及处理的桥梁,如图3中的缓存数据共享装置,本实施例所述的方法,可以由缓存数据共享装置实现。可以理解的是,c/s框架使用第二查询报文查询缓存数据,以及更新缓存数据的方法,均可参见现有技术,如图3中c/s框架侧的方法,这里不再赘述。

    需要强调的是,本申请提供的缓存数据共享方法,b/s框架的浏览器从c/s框架获取缓存数据,而非c/s框架从b/s框架获取缓存数据,是申请人经过研究后做出的创新性改进,申请人的研究过程如下:

    将系统中的缓存表数据按照字段的长度统计这些数据在内存中占用的空间,理论上大概需要25m,在c/s框架中缓存数据加载前后,内存增加大概是在25m左右,但是在b/s框架的浏览器中25m的数据占用的空间差不多在100m左右,可能是由于数据字段以及数据结构的原因,导致b/s框架的浏览器和的缓存数据的内存占用差异,可见,缓存数据设置在b/s框架的浏览器中,内存占用多于设置在c/s框架。

    因此,本申请提供的技术方案,将缓存设置在c/s框架而非b/s框架,能够较大程度地减少内存的占用量。

    下面将从通信链路建立的角度,进行详细的举例说明。

    图4为本申请实施例公开的又一种缓存数据共享方法,包括以下步骤:

    s401、在浏览器的第一前端框架和c/s框架中封装预设的通信客户端。

    通常,浏览器中包括多种框架,前端框架为其中的一种框架。可选的,第一前端框架可以为前端js框架。

    本实施例中,基于b/s框架和c/s框架的特点,以及websocket技术相对稳定和可靠性高的特点,预设的通信客户端可以为websocket客户端。

    封装客户端的过程,可以参见现有技术,这里不再赘述。

    除此之外,预设的通信客户端也可以为socket客户端、或管道通信客户端等,本实施例不做限定。

    s402、在通信客户端中配置预设端口,以分别创建第一链路和第二链路。

    具体的,端口的配置信息包括ip地址和端口号,因此,将ip地址和端口号配置到浏览器的通信客户端中,即可建立浏览器至预设端口的链接。将ip地址和端口号配置到c/s框架的通信客户端中,即可建立c/s框架至预设端口的链接。

    浏览器和c/s框架的通信客户端均连接至相同的端口,所以浏览器和c/s框架之间的通信链路已被建立。至此,完成链路的建立过程。

    s403、监测链路的连接状态,在链路的连接状态为断开的情况下,重新建立链路,和/或,在连接状态为异常的情况下,发出异常提示信息。

    具体的,建立链路以及维护链路的过程可以通过人机交互的方式实现,例如,显示通道连接管理界面,技术人员在通道连接管理界面输入端口的地址,使得通信客户端分别连接至端口,并且,技术人员还可以在通道连接管理界面中设置监测链路状态的时间周期,以及,通道连接管理界面中还可以显示异常提示信息。

    可选的,可以在b/s框架的浏览器和c/s框架中,分别执行s403,以实现两个框架的监测和维护的独立运行,从而更为便利地实现故障定位和维护。

    本实施例中的后续步骤如s201-s204,这里不再赘述,可参见图4所示。

    本实施例所述的缓存数据共享方法,通过在b/s框架的浏览器和c/s框架中分别封装通信客户端,并连接至相同的端口,实现b/s框架的浏览器和c/s框架之间的通信链路的建立,通信客户端为现有技术,所以易于实现。并且,状态监测和提醒机制,有利于保证通信链路的畅通。

    图5为本申请实施例公开的一种缓存数据的共享方法,与上述实施例相比,重点说明各个步骤的具体实现方式,图5中包括以下步骤:

    s501:在浏览器的第一前端框架中封装第一方法集合,在c/s框架中封装第二方法集合。

    其中,第一方法集合中的方法用于实现针对浏览器的步骤,第二方法集合中的方法用于实现针对c/s框架的步骤。

    具体的,第一方法集合中包括但不限于:js报文组装方法、格式转换方法、第一链路调用方法、以及c#框架对应的接口方法。

    第二方法集合中包括但不限于:报文格式转换方法、查询方法的转换方法、第二链路调用方法、接口调用方法以及缓存查询方法。

    以上各个方法的具体内容均可参见现有技术。

    s502、响应于运行于b/s框架的浏览器的页面的组装请求,调用第一方法集合中的js报文组装方法,组装第一查询报文。

    s503、调用第一方法集合中的第一链路调用方法、以及c#框架对应的接口方法,将第一查询报文使用第一链路发送至端口。

    s504、调用第二方法集合中的第二链路调用方法、以及接口调用方法,将第一查询报文使用第二链路发送至c/s框架。

    s505、调用第二方法集合的报文格式转换方法,将第一查询报文从第一格式转换为第二格式。

    其中,第一格式为b/s框架格式,例如js格式,第二格式为c/s框架格式。

    s506、调用第二方法集合的查询方法的转换方法,将第一查询报文指示的b/s框架的查询方法,转换为c/s框架的查询方法。

    具体的,查询方法的转换方法依据预设的对应关系,进行方法的转换,其中,对应关系为b/s框架中的方法,与c/s框架中实现相同功能的方法对应关系。

    s507、调用第二方法集合中的缓存查询方法,从c/s框架中的缓存中查询第二查询报文指示的缓存数据。

    s508、调用第二方法集合中的第二链路调用方法、以及接口调用方法,将缓存数据使用第二链路发送至端口。

    可以理解的是,有可能缓存数据的格式不能被浏览器识别,所以可以先将缓存数据进行格式转换,例如转换为js格式,再执行s508。

    s509、调用第一方法集合中的第一链路调用方法、以及c#框架对应的接口方法,将缓存数据使用第一链路发送至浏览器的页面。

    需要说明的是,本实施例中,第一方法集合中的方法为公共方法,即浏览器中的所有页面均可调用第一方法集合中的方法。可以理解的是,可以配置浏览器的页面的调用权限。

    从上述步骤可以看出,通过封装方法集合的方式,可以灵活配置针对b/s框架的浏览器和c/s框架的方法,因此,可以针对现有的各类b/s框架的浏览器和c/s框架,灵活调整方法集合中的方法,所以本实施例所述的缓存共享方法,与现有技术具有较好的兼容性,并灵活性较高。

    图6为在两端分别封装方法集合,并且多个页面通过配置共享第一方法集合的示例。

    图7为本申请实施例公开的一种缓存数据共享装置,包括:获取模块、发送模块和转换模块。

    获取模块,用于响应于运行于b/s框架的浏览器的查询请求,获取第一查询报文,所述第一查询报文用于所述浏览器获取缓存数据;

    发送模块,用于使用预先建立的链路,将所述第一查询报文发送至c/s框架,所述链路包括第一链路和第二链路,所述第一链路由所述b/s框架连接至终端的预设端口,所述第二链路由所述预设端口连接至所述c/s框架;

    转换模块,用于将所述第一查询报文转换为可被c/s框架解析的第二查询报文;

    所述发送模块还用于,使用所述链路,将所述c/s框架发送的缓存数据发送至所述b/s框架的浏览器,所述缓存数据由所述c/s框架依据所述第二查询报文,从所述c/s框架的缓存中查询得到。

    可选的,还包括:链路建立模块,用于在所述浏览器和所述c/s框架中分别封装预设的通信客户端;在所述通信客户端中配置所述预设端口,以分别创建所述第一链路和所述第二链路。

    进一步的,链路建立模块具体用于,在所述浏览器的第一前端框架中封装所述预设的通信客户端。

    可选的,所述装置还包括:监测模块,用于监测所述链路的连接状态;在所述连接状态为断开的情况下,重新建立所述链路;和/或,在所述连接状态为异常的情况下,发出异常提示信息。

    可选的,转换模块具体用于,将所述第一查询报文从第一格式转换为第二格式;其中,所述第一格式为所述b/s框架格式,所述第二格式为所述c/s框架格式;依据预设的对应关系,将所述第一查询报文指示的所述b/s框架的查询方法,转换为所述c/s框架的查询方法,所述对应关系为所述b/s框架中的方法,与所述c/s框架中实现相同功能的方法对应关系。

    可选的,所述装置还包括:配置模块,用于在所述响应于浏览器的查询请求,获取第一查询报文之前,在所述浏览器的第一前端框架中封装第一方法集合,在所述c/s框架中封装第二方法集合,所述第一方法集合中的方法用于实现所述缓存数据共享方法中针对所述浏览器的各个步骤,所述第二方法集合中的方法用于实现所述缓存数据共享方法中针对所述c/s框架的各个步骤。

    可选的,所述配置模块还用于:为所述浏览器的页面配置调用权限,所述调用权限为调用所述第一方法集合中的方法的权限。

    本实施例所述的装置,能够避免在b/s框架的浏览器中设置缓存,从而减少内存的占用量。

    本申请还公开了一种缓存数据共享设备,包括:存储器和处理器。所述存储器用于存储程序,所述处理器用于运行所述程序,以实现上述方法实施例所述的缓存数据共享方法。

    本申请还公开了一种计算机可读存储介质,其上存储有程序,在所述程序在计算设备上运行时,实现上述方法实施例所述的缓存数据共享方法。

    本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

    本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。


    技术特征:

    1.一种缓存数据共享方法,其特征在于,包括:

    响应于运行于b/s框架的浏览器的查询请求,获取第一查询报文,所述第一查询报文用于所述浏览器获取缓存数据;

    使用预先建立的链路,将所述第一查询报文发送至c/s框架,所述链路包括第一链路和第二链路,所述第一链路由所述b/s框架连接至终端的预设端口,所述第二链路由所述预设端口连接至所述c/s框架;

    将所述第一查询报文转换为可被c/s框架解析的第二查询报文;

    使用所述链路,将所述c/s框架发送的缓存数据发送至所述b/s框架的浏览器,所述缓存数据由所述c/s框架依据所述第二查询报文,从所述c/s框架的缓存中查询得到。

    2.根据权利要求1所述的方法,其特征在于,所述链路的建立过程包括:

    在所述浏览器和所述c/s框架中分别封装预设的通信客户端;

    在所述通信客户端中配置所述预设端口,以分别创建所述第一链路和所述第二链路。

    3.根据权利要求2所述的方法,其特征在于,在所述浏览器中封装所述预设的通信客户端包括:

    在所述浏览器的第一前端框架中封装所述预设的通信客户端。

    4.根据权利要求1-3任一项所述的方法,其特征在于,还包括:

    监测所述链路的连接状态;

    在所述连接状态为断开的情况下,重新建立所述链路;和/或,在所述连接状态为异常的情况下,发出异常提示信息。

    5.根据权利要求1所述的方法,其特征在于,将所述第一查询报文转换为第二查询报文,包括:

    将所述第一查询报文从第一格式转换为第二格式;其中,所述第一格式为所述b/s框架格式,所述第二格式为所述c/s框架格式;

    依据预设的对应关系,将所述第一查询报文指示的所述b/s框架的查询方法,转换为所述c/s框架的查询方法,所述对应关系为所述b/s框架中的方法,与所述c/s框架中实现相同功能的方法对应关系。

    6.根据权利要求1所述的方法,其特征在于,在所述响应于浏览器的查询请求,获取第一查询报文之前,还包括:

    在所述浏览器的第一前端框架中封装第一方法集合,在所述c/s框架中封装第二方法集合,所述第一方法集合中的方法用于实现所述缓存数据共享方法中针对所述浏览器的各个步骤,所述第二方法集合中的方法用于实现所述缓存数据共享方法中针对所述c/s框架的各个步骤。

    7.根据权利要求6所述的方法,其特征在于,还包括:

    为所述浏览器的页面配置调用权限,所述调用权限为调用所述第一方法集合中的方法的权限。

    8.一种缓存数据共享装置,其特征在于,包括:

    获取模块,用于响应于运行于b/s框架的浏览器的查询请求,获取第一查询报文,所述第一查询报文用于所述浏览器获取缓存数据;

    发送模块,用于使用预先建立的链路,将所述第一查询报文发送至c/s框架,所述链路包括第一链路和第二链路,所述第一链路由所述b/s框架连接至终端的预设端口,所述第二链路由所述预设端口连接至所述c/s框架;

    转换模块,用于将所述第一查询报文转换为可被c/s框架解析的第二查询报文;

    所述发送模块还用于,使用所述链路,将所述c/s框架发送的缓存数据发送至所述b/s框架的浏览器,所述缓存数据由所述c/s框架依据所述第二查询报文,从所述c/s框架的缓存中查询得到。

    9.一种缓存数据共享设备,其特征在于,包括:

    存储器和处理器;

    所述存储器用于存储程序,所述处理器用于运行所述程序,以实现权利要求1-7任一项所述的缓存数据共享方法。

    10.一种计算机可读存储介质,其上存储有程序,其特征在于,在所述程序在计算设备上运行时,实现权利要求1-7任一项所述的缓存数据共享方法。

    技术总结
    本申请所述的缓存数据共享方法及装置、设备、计算机可读存储介质,响应于运行于B/S框架的浏览器的查询请求,获取用于所述浏览器获取缓存数据的第一查询报文,将第一查询报文转换为可被C/S框架解析的第二查询报文,使用预先建立的链路,将第二查询报文发送至C/S框架,链路包括第一链路和第二链路,第一链路由B/S框架连接至终端的预设端口,第二链路由预设端口连接至C/S框架。使用链路,将C/S框架发送的缓存数据发送至B/S框架的浏览器,缓存数据由C/S框架依据第二查询报文,从C/S框架的缓存中查询。B/S框架能够从C/S框架获取缓存数据,而无需在B/S框架中设置缓存,所以有利于降低内存的占用量。

    技术研发人员:柳伟;彭志刚;金侠斌
    受保护的技术使用者:恒生电子股份有限公司
    技术研发日:2020.12.09
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7341.html

    最新回复(0)