发明内容
本申请实施例的目的在于提供一种数据处理方法、装置、电子设备及存储介质,以解决用户体验差的问题。具体技术方案如下:
第一方面,提供了一种数据处理方法,所述方法应用于客户端,所述方法包括:
响应于融合项目页面的显示操作,获取所述融合项目页面的页面代码,所述页面代码中记录有融合项目的公用静态文件的存储位置、所述融合项目的第一专用静态文件的存储位置、构成所述融合项目的每个子项目的第二专用静态文件的存储位置;
在所述页面代码包含的存储位置中,确定显示融合项目页面所需的目标静态文件的第一存储位置,所述目标静态文件包括所述公用静态文件和所述第一专用静态文件;
从所述第一存储位置处获取所述目标静态文件;
基于所述目标静态文件,显示所述融合项目页面;
响应于目标子项目页面的显示操作,在所述页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置;
从所述第二存储位置处获取所述第二专用静态文件;
基于所述第二专用静态文件和所述公用静态文件,显示所述目标子项目页面。
可选的,所述从所述第一存储位置处获取所述目标静态文件,包括:
向预设的服务端发送携带有所述第一存储位置的第一数据获取请求;
接收所述服务端发送的目标静态文件;
所述从所述第二存储位置处获取所述第二专用静态文件,包括:
向所述服务端发送携带有所述第二存储位置的第二数据获取请求;
接收所述服务端发送的第二专用静态文件。
第二方面,提供了一种数据处理方法,所述方法应用于服务端,所述方法包括:
获取构建融合项目所需的初始静态文件,所述初始静态文件包含所述融合项目的初始公用静态文件、所述融合项目的初始专用静态文件、构成所述融合项目的每个子项目的初始专用静态文件;
对所述初始静态文件进行打包处理,得到打包后的第一打包文件,所述第一打包文件包括公用静态文件、所述融合项目的第一专用静态文件、每个所述子项目的第二专用静态文件;
基于所述第一打包文件的存储位置,生成融合项目页面的页面代码,所述页面代码中记录有所述公用静态文件的存储位置、所述第一专用静态文件的存储位置、所述第二专用静态文件的存储位置;
向客户端发送所述页面代码,以便所述客户端基于所述页面代码显示融合项目页面和每个所述子项目的子项目页面。
可选的,所述基于所述第一打包文件的存储位置,生成融合项目页面的页面代码,包括:
在所述第一打包文件的存储位置中,分别确定每个所述子项目的第二专用静态文件的存储位置、所述第一专用静态文件的存储位置和所述公用静态文件的存储位置;
生成包含每个所述子项目的第二专用静态文件的存储位置、所述第一专用静态文件的存储位置和所述公用静态文件的存储位置的页面代码,得到融合项目页面的页面代码。
可选的,所述对所述初始静态文件进行打包处理,得到打包后的第一打包文件,包括:
获取所述初始静态文件的第一配置参数,其中,所述第一配置参数包括存储位置、引用方式、文件名称中的至少一种,所述初始公用静态文件的引用方式为基于存储位置进行引用;
生成包含所述第一配置参数的第一入口文件;
调用打包工具,以按照所述第一入口文件中记录的第一配置参数,对所述初始静态文件进行打包,得到打包后的第一打包文件。
可选的,所述对所述初始静态文件进行打包处理,得到打包后的第一打包文件,包括:
针对构成融合项目的每个所述子项目,获取该子项目的初始静态文件的第二配置参数,其中,所述第二配置参数包括存储位置、引用方式、文件名称中的至少一种,所述初始公用静态文件的引用方式为基于存储位置进行引用;
生成包含所述第二配置参数的第二入口文件;
调用打包工具,以按照所述第二入口文件中记录的第二配置参数,对该子项目的初始静态文件进行打包,得到打包后的与该子项目对应的第二打包文件;
获取各子项目对应的第二打包文件的第三配置参数、融合项目的初始静态文件的第四配置参数;
生成包含所述第三配置参数和所述第四配置参数的第三入口文件,所述初始公用静态文件的引用方式和所述第二打包文件的引用方式均为基于存储位置进行引用;
调用打包工具,以按照所述第三入口文件中记录的所述第三配置参数,对所述第二打包文件进行打包,得到第一打包结果,并按照所述第四配置参数对所述融合项目的初始静态文件进行打包,得到第二打包结果;
所述第一打包结果和所述第二打包结果构成打包后的第一打包文件。
可选的,所述方法还包括:
接收客户端发送的第一数据获取请求,从所述第一数据获取请求携带的第一存储位置处获取显示融合项目页面所需的目标静态文件,所述目标静态文件包括所述公用静态文件、所述第一专用静态文件;
向所述客户端发送所述目标静态文件,以便所述客户端基于所述目标静态文件显示所述融合项目页面;
接收客户端发送的第二数据获取请求,从所述第二数据获取请求携带的第二存储位置处,获取目标子项目的第二专用静态文件;
向所述客户端发送所述第二专用静态文件,以便所述客户端基于所述第二专用静态文件和所述公用静态文件显示目标子项目页面。
第三方面,提供了一种数据处理装置,所述装置应用于客户端,所述装置包括:
第一获取模块,用于响应于融合项目页面的显示操作,获取所述融合项目页面的页面代码,所述页面代码中记录有融合项目的公用静态文件的存储位置、所述融合项目的第一专用静态文件的存储位置、构成所述融合项目的每个子项目的第二专用静态文件的存储位置;
第一确定模块,用于在所述页面代码包含的存储位置中,确定显示融合项目页面所需的目标静态文件的第一存储位置,所述目标静态文件包括所述公用静态文件和所述第一专用静态文件;
第二获取模块,用于从所述第一存储位置处获取所述目标静态文件;
显示模块,用于基于所述目标静态文件,显示所述融合项目页面;
第二确定模块,用于响应于目标子项目页面的显示操作,在所述页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置;
所述第二获取模块,还用于从所述第二存储位置处获取所述第二专用静态文件;
所述显示模块,还用于基于所述第二专用静态文件和所述公用静态文件,显示所述目标子项目页面。
可选的,所述第二获取模块包括:
发送子模块,用于向预设的服务端发送携带有所述第一存储位置的第一数据获取请求;
接收子模块,用于接收所述服务端发送的目标静态文件;
所述发送子模块,还用于向所述服务端发送携带有所述第二存储位置的第二数据获取请求;
所述接收子模块,还用于接收所述服务端发送的第二专用静态文件。
第四方面,提供了一种数据处理装置,所述装置应用于服务端,所述装置包括:
获取模块,用于获取构建融合项目所需的初始静态文件,所述初始静态文件包含所述融合项目的初始公用静态文件、所述融合项目的初始专用静态文件、构成所述融合项目的每个子项目的初始专用静态文件;
打包模块,用于对所述初始静态文件进行打包处理,得到打包后的第一打包文件,所述第一打包文件包括公用静态文件、所述融合项目的第一专用静态文件、每个所述子项目的第二专用静态文件;
生成模块,用于基于所述第一打包文件的存储位置,生成融合项目页面的页面代码,所述页面代码中记录有所述公用静态文件的存储位置、所述第一专用静态文件的存储位置、所述第二专用静态文件的存储位置;
第一发送模块,用于向客户端发送所述页面代码,以便所述客户端基于所述页面代码显示融合项目页面和每个所述子项目的子项目页面。
可选的,所述生成模块包括:
确定子模块,用于在所述第一打包文件的存储位置中,分别确定每个所述子项目的第二专用静态文件的存储位置、所述第一专用静态文件的存储位置和所述公用静态文件的存储位置;
第一生成子模块,用于生成包含每个所述子项目的第二专用静态文件的存储位置、所述第一专用静态文件的存储位置和所述公用静态文件的存储位置的页面代码,得到融合项目页面的页面代码。
可选的,所述打包模块包括:
第一获取子模块,用于获取所述初始静态文件的第一配置参数,其中,所述第一配置参数包括存储位置、引用方式、文件名称中的至少一种,所述初始公用静态文件的引用方式为基于存储位置进行引用;
第二生成子模块,用于生成包含所述第一配置参数的第一入口文件;
第一打包子模块,用于调用打包工具,以按照所述第一入口文件中记录的第一配置参数,对所述初始静态文件进行打包,得到打包后的第一打包文件。
可选的,所述打包模块包括:
第二获取子模块,用于针对构成融合项目的每个所述子项目,获取该子项目的初始静态文件的第二配置参数,其中,所述第二配置参数包括存储位置、引用方式、文件名称中的至少一种,所述初始公用静态文件的引用方式为基于存储位置进行引用;
第二生成子模块,用于生成包含所述第二配置参数的第二入口文件;
第二打包子模块,用于调用打包工具,以按照所述第二入口文件中记录的第二配置参数,对该子项目的初始静态文件进行打包,得到打包后的与该子项目对应的第二打包文件;
所述第二获取子模块,还用于获取各子项目对应的第二打包文件的第三配置参数、融合项目的初始静态文件的第四配置参数;
所述第二生成子模块,还用于生成包含所述第三配置参数和所述第四配置参数的第三入口文件,所述初始公用静态文件的引用方式和所述第二打包文件的引用方式均为基于存储位置进行引用;
所述第二打包子模块,还用于调用打包工具,以按照所述第三入口文件中记录的所述第三配置参数,对所述第二打包文件进行打包,得到第一打包结果,并按照所述第四配置参数对所述融合项目的初始静态文件进行打包,得到第二打包结果;
构成子模块,用于利用所述第一打包结果和所述第二打包结果构成打包后的第一打包文件。
可选的,所述装置还包括:
接收模块,用于接收客户端发送的第一数据获取请求,从所述第一数据获取请求携带的第一存储位置处获取显示融合项目页面所需的目标静态文件,所述目标静态文件包括所述公用静态文件、所述第一专用静态文件;
第二发送模块,用于向所述客户端发送所述目标静态文件,以便所述客户端基于所述目标静态文件显示所述融合项目页面;
所述接收模块,还用于接收客户端发送的第二数据获取请求,从所述第二数据获取请求携带的第二存储位置处,获取目标子项目的第二专用静态文件;
所述第二发送模块,还用于向所述客户端发送所述第二专用静态文件,以便所述客户端基于所述第二专用静态文件和所述公用静态文件显示目标子项目页面。
第五方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一第一方面,或,任一第二方面所述的方法步骤。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一第一方面,或,任一第二方面所述的方法步骤。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据处理方法。
本申请实施例有益效果:
本申请实施例提供了一种数据处理方法、装置、电子设备及存储介质,客户端可以响应于融合项目页面的显示操作,获取融合项目页面的页面代码,页面代码中记录有融合项目的公用静态文件的存储位置、融合项目的第一专用静态文件的存储位置、构成融合项目的每个子项目的第二专用静态文件的存储位置。在页面代码包含的存储位置中确定显示融合项目页面所需的目标静态文件的第一存储位置,目标静态文件包括公用静态文件和第一专用静态文件;从第一存储位置处获取目标静态文件;基于目标静态文件,显示融合项目页面;响应于目标子项目页面的显示操作,在页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置;从第二存储位置处获取第二专用静态文件;基于第二专用静态文件和公用静态文件,显示目标子项目页面。
由于响应于目标子项目页面的显示操作,客户端仅需获取目标子项目的第二专用静态文件,即可实现目标子项目页面的显示,无需重复获取公用静态文件,从而能够减少子项目页面加载时间,提高用户体验。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据处理方法,可以应用于服务端,服务端可以是具有数据处理功能的电子设备,服务端可以对子项目进行融合,生成融合项目。
本申请实施例中,融合项目可以是应用程序,融合项目可以由多个子项目构成,例如,融合项目可以是电子商城的应用程序,融合项目页面可以是电子商城的首页,子项目可以是实现秒杀功能的模块、实现消息功能的模块,子项目页面可以是秒杀页面、消息页面。本申请实施例中,融合项目和子项目可以是VUE(构建用户界面的渐进式框架)项目。
服务端可以是应用程序的后台服务器。在客户端运行融合项目的过程中,为显示融合项目页面,客户端可以向服务端发送数据获取请求。服务端可以在接收到客户端的数据获取请求后,发送静态文件至客户端,以便客户端基于获取到的静态文件对html(HyperText Markup Language,超级文本标记语言)页面进行渲染,得到融合项目页面并进行显示。其中,静态文件包括css(Cascading Style Sheets,层叠样式表)文件、js(JavaScript,Java脚本)文件、图片等。
类似的,为显示融合项目的子项目的子项目页面,客户端可以向服务端发送数据获取请求。服务端可以在接收到客户端的数据获取请求后,发送静态文件至客户端,以便客户端基于获取到的静态文件对html页面进行渲染,得到融合项目的子项目页面并进行显示。
显示融合项目页面所需的静态文件和显示各子项目页面所需的静态文件之间存在多个相同的公用静态文件,公用静态文件可以是显示融合项目页面和多个子项目的子项目页面时均需使用的静态文件,例如,公用静态文件可以是字体文件、应用程序的logo(标识)的图片。
下面将结合具体实施方式,对本申请实施例提供的一种应用于服务端的数据处理方法进行详细的说明,如图1所示,具体步骤如下:
步骤101,获取构建融合项目所需的初始静态文件。
其中,构建融合项目所需的初始静态文件包含融合项目的初始公用静态文件、融合项目的初始专用静态文件、构成融合项目的每个子项目的初始专用静态文件。
在实施中,服务端可以在接收到项目融合指令后,针对构成融合项目的每个子项目,获取该子项目包含的初始静态文件,该子项目包含的初始静态文件包含该子项目的初始专用静态文件、该子项目的初始公用静态文件。
类似的,服务端可以获取显示融合项目页面所需的初始静态文件,显示融合项目页面所需的初始静态文件包括融合项目的初始公用静态文件、融合项目的初始专用静态文件。
由此,服务端可以获取到构建融合项目所需的初始静态文件。
本申请实施例中,服务端可以通过多种方式获取初始静态文件,在一种可行的实现方式中,服务端中可以预先存储有初始静态文件,服务端可以从本地读取初始静态文件。在另一种可行的实现方式中,项目融合指令可以携带有初始静态文件在其他设备中的存储位置,服务端根据该存储位置从其他设备处获取初始静态文件。
步骤102,对初始静态文件进行打包处理,得到打包后的第一打包文件。
在实施中,服务端中可以预先设置有打包工具,打包工具例如webpack(网页包模块打包器)、grunt(项目构建工具)。
服务端可以通过打包工具对构建融合项目所需的初始静态文件进行打包处理,得到打包后的第一打包文件,第一打包文件包含公用静态文件、融合项目的第一专用静态文件、每个子项目的第二专用静态文件。
后续会对服务端通过打包工具对构建融合项目所需的初始静态文件进行打包处理的具体处理过程,进行详细说明。
步骤103,基于第一打包文件的存储位置,生成融合项目页面的页面代码。
其中,页面代码中记录有公用静态文件的存储位置、第一专用静态文件的存储位置、第二专用静态文件的存储位置。
在实施中,服务端可以获取第一打包文件的存储位置,然后,生成包含第一打包文件的存储位置的页面代码,得到融合项目页面的页面代码。
服务端可以通过多种方式获取第一打包文件的存储位置,在一种可行的实现方式中,服务端可以在打包得到每个第一打包文件后,记录该第一打包文件的存储位置,得到各第一打包文件的存储位置。
在另一种可行的实现方式中,在服务端通过打包工具生成第一打包文件的情况下,在进行打包处理后,打包工具可以输出记录有第一打包文件的存储位置的出口文件,服务端可以读取入口文件中记录的第一打包文件的存储位置。
服务端生成包含第一打包文件的存储位置的页面代码,得到融合项目页面的页面代码的具体处理过程后续会进行详细说明。
步骤104,向客户端发送页面代码。
在实施中,服务端可以向客户端发送页面代码,以便客户端基于页面代码显示融合项目页面和每个子项目的子项目页面。客户端基于页面代码显示融合项目页面和子项目的子项目页面的具体处理过程,后续会进行详细说明。
本申请实施例中,服务端可以获取构建融合项目所需的初始静态文件,对初始静态文件进行打包处理,得到打包后的第一打包文件,第一打包文件包括公用静态文件、融合项目的第一专用静态文件、每个子项目的第二专用静态文件。然后,服务端可以基于第一打包文件的存储位置,生成融合项目页面的页面代码,再向客户端发送该页面代码。
由于在融合项目页面的页面代码中分别记录公用静态文件和每个子项目的第二专用静态文件的存储位置,因此,后续响应于目标子项目页面的显示操作,客户端仅需获取目标子项目的第二专用静态文件,即可实现目标子项目页面的显示,无需重复获取公用静态文件,从而能够减少子项目页面的加载时间,提高用户体验。
本申请实施例中,服务端可以获取构建融合项目所需的初始静态文件,对初始静态文件进行打包处理,得到打包后的第一打包文件,即,服务端可以通过对构建融合项目所需的各初始静态文件进行打包的方式,实现项目融合。相关技术中,在进行项目融合时,可以将各子项目的初始静态文件的代码数据复制到同一数据文件中,然而,基于该数据文件运行融合项目时可能存在函数调用冲突的问题,需要研发人员进行调试。而本申请实施例采用对构建融合项目所需的各初始静态文件进行打包的方式,各初始静态文件的代码数据之间相互独立,基于打包后的打包文件运行融合项目时,能够避免函数调用冲突的问题,降低运维成本。
可选的,服务端对初始静态文件进行打包处理,得到打包后的第一打包文件的方式可以是多种多样的,在一种可行的实现方式中,服务端可以直接对全部初始静态文件进行打包处理,具体处理过程包括:
步骤1、获取初始静态文件的第一配置参数。
其中,第一配置参数包括存储位置、引用方式、文件名称中的至少一种,引用方式包括基于存储位置进行引用或引入文件,初始公用静态文件的引用方式为基于存储位置进行引用。
在实施中,服务端中可以预先存储有静态文件与配置参数的对应关系,服务端可以根据静态文件与配置参数的对应关系,确定与初始静态文件对应的配置参数,得到第一配置参数。
在一种可行的实现方式中,服务端也可以接收开发人员输入的初始静态文件的配置参数,得到第一配置参数。
例如,融合项目包含子项目A和子项目B,初始静态文件包括融合项目的初始公用静态文件GY、融合项目的初始专用静态文件rh1和rh2,子项目A的初始专用静态文件a1、a2和a3,子项目B的初始专用静态文件b1、b2、b3和b4。服务端可以接收开发人员输入的每个初始静态文件的第一配置参数。
本申请实施例中,初始公用静态文件的引用方式为基于存储位置进行引用,使得服务端能够在打包初始静态文件的过程中,避免重复打包各子项目包含的初始公用静态文件,从而避免出现融合项目对应的第一打包文件所占用的存储空间过大的问题。
初始公用静态文件的引用方式为基于存储位置进行引用,因此,打包后的第一打包文件所包含的公用静态文件即为初始公用静态文件。
步骤2、生成包含第一配置参数的第一入口文件。
在实施中,服务端可以在预设文件中记录每个初始静态文件的第一配置参数,得到第一入口文件。
例如,服务端可以在预设文件中记录初始静态文件a1的文件名称为symtoma9.png,初始静态文件a1的存储位置为:秒杀/物品详情/正视图/,初始静态文件a1的引用方式为引入文件。
服务端可以在预设文件中记录初始公用静态文件GY的文件名称tubiao4.0.png,初始公用静态文件GY的存储位置为:秒杀/物品详情/页面图标/,初始公用静态文件GY的引用方式为基于存储位置进行引用。
步骤3、调用打包工具,以按照第一入口文件中记录的第一配置参数,对初始静态文件进行打包,得到打包后的第一打包文件。
在实施中,服务端可以调用打包工具,从第一入口文件中记录的各存储位置处按照文件名称获取初始静态文件,按照相应的引用方式对初始静态文件进行打包,得到打包后的第一打包文件,然后,服务端可以存储第一打包文件。
服务端调用打包工具,以按照第一入口文件中记录的第一配置参数,对初始静态文件进行打包的具体处理过程,可以参照相关技术中任一种调用打包工具对文件进行打包处理的处理过程,此处不再赘述。
例如,服务端可以调用打包工具,按照第一入口文件中记录的第一配置参数,对初始静态文件GY、rh1、rh2、a1、a2、a3、b1、b2、b3和b4进行打包,即记录初始公用静态文件GY的存储位置,引入初始静态文件rh1、rh2、a1、a2、a3、b1、b2、b3和b4,得到第一打包文件。第一打包文件包含第一专用静态文件RH,第二专用静态文件A1、A2、B1和B2。第一打包文件的出口文件中,记录有公用静态文件GY的文件名称和存储位置。
本申请实施例中,服务端可以获取初始静态文件的第一配置参数,生成包含第一配置参数的第一入口文件,然后,服务端可以调用打包工具,以按照第一入口文件中记录的第一配置参数,对初始静态文件进行打包,得到打包后的第一打包文件。由于对构建融合项目所需的全部初始静态文件直接进行打包处理,可以加快第一打包文件的生成速度。
本申请实施例中,服务端可以针对每个子项目的第二专用静态文件,设置该第二专用静态文件的作用域,以避免多个子项目包含相同文件名称的第二专用静态文件时,可能出现的文件调用冲突现象。
在另一种可行的实现方式中,服务端可以先针对每个子项目,对该子项目的初始静态文件进行打包处理,得到打包后的与该子项目对应的第二打包文件,然后,服务端可以对各子项目对应的第二打包文件和融合项目的初始静态文件进行打包处理,得到打包后的第一打包文件,具体处理过程包括:
步骤201、针对构成融合项目的每个子项目,获取该子项目的初始静态文件的第二配置参数。
其中,第二配置参数包括存储位置、引用方式、文件名称中的至少一种,初始公用静态文件的引用方式为基于存储位置进行引用。
在实施中,服务端可以针对构成融合项目的每个子项目,确定该子项目的初始静态文件,然后,获取该子项目的初始静态文件的第二配置参数。
服务端获取每个子项目的初始静态文件的第二配置参数的具体处理过程,可以参照步骤1中服务端获取初始静态文件的第一配置参数的处理过程,此处不再赘述。
例如,融合项目包含子项目A和子项目B,服务端可以针对子项目A,确定该子项目的初始静态文件,得到初始专用静态文件a1、a2、a3和初始公用静态文件GY。然后,服务端可以接收开发人员输入的每个初始静态文件的第二配置参数。
步骤202、生成包含第二配置参数的第二入口文件。
在实施中,服务端可以在预设文件中记录该子项目的每个初始静态文件的第二配置参数,得到第二入口文件。
步骤203、调用打包工具,以按照第二入口文件中记录的第二配置参数,对该子项目的初始静态文件进行打包,得到打包后的与该子项目对应的第二打包文件。
在实施中,服务端可以调用打包工具,从第二入口文件中记录的各存储位置处按照文件名称获取初始静态文件,按照相应的引用方式对初始静态文件进行打包,得到打包后的第二打包文件。由此,服务端可以确定每个子项目对应的第二打包文件。
可选的,服务端可以在本地存储第二打包文件,记录第二打包文件在本地存储的存储位置、第二打包文件的文件名称、引用方式等配置参数,得到第二打包文件与配置参数的对应关系。
例如,服务端对子项目A所包含的初始专用静态文件a1、a2、a3和初始公用静态文件GY进行打包,得到第二打包文件,第二打包文件包含子项目A的第二专用静态文件A1和A2,子项目A的第二打包文件的出口文件中,记录有第二专用静态文件A1、A2的文件名称和存储位置、公用静态文件GY的文件名称和存储位置。
步骤204、获取各子项目对应的第二打包文件的第三配置参数、融合项目的初始静态文件的第四配置参数。
在实施中,服务端可以针对每个子项目,根据第二打包文件与配置参数的对应关系,确定该子项目对应的第二打包文件的配置参数,得到第三配置参数。由此,服务端可以确定各子项目对应的第二打包文件的第三配置参数。
服务端获取融合项目的初始静态文件的第四配置参数的具体处理过程,可以参照步骤1中服务端获取初始静态文件的第一配置参数的处理过程,此处不再赘述。
步骤205、生成包含第三配置参数和第四配置参数的第三入口文件。
其中,初始公用静态文件的引用方式和第二打包文件的引用方式均为基于存储位置进行引用。
在实施中,服务端可以在预设文件中记录各子项目对应的第二打包文件的第三配置参数、融合项目的初始静态文件的第四配置参数,得到第三入口文件。
步骤206、调用打包工具,以按照第三入口文件中记录的第三配置参数,对第二打包文件进行打包,得到第一打包结果,并按照第四配置参数对融合项目的初始静态文件进行打包,得到第二打包结果,第一打包结果和第二打包结果构成打包后的第一打包文件。
在实施中,服务端可以调用打包工具,从第三入口文件记录的第四配置参数中的存储位置处,按照文件名称获取融合项目的初始静态文件,从第三配置参数中的存储位置处,按照文件名称获取第二打包文件。
然后,服务端可以按照相应的引用方式对第二打包文件进行打包,得到第一打包结果,并按照相应的引用方式对初始静态文件进行打包,得到第二打包结果,由第一打包结果和第二打包结果构成打包后的第一打包文件。
本申请实施例中,第二打包文件的引用方式为基于存储位置进行引用,因此,第一打包结果可以是在第一打包文件的出口文件中记录第二打包文件的文件名称和存储位置;类似的,初始公用静态文件的引用方式为基于存储位置进行引用,第二打包结果可以包括在第一打包文件的出口文件中记录初始公用静态文件的文件名称和存储位置;融合项目的初始专用静态文件的引用方式为引入文件,第二打包结果可以包括对初始专用静态文件进行打包,得到的第一专用静态文件。
由第一打包结果和第二打包结果构成打包后的第一打包文件,第一打包文件可以包含融合项目的第一专用静态文件,第一打包文件的出口文件中,记录有第二打包文件的文件名称和存储位置,初始公用静态文件的文件名称和存储位置,也即第二专用静态文件的文件名称和存储位置、公用静态文件的文件名称和存储位置。
例如,子项目A的第二打包文件包含第二专用静态文件A1和A2,子项目B的第二打包文件包含第二专用静态文件B1和B2,融合项目的初始静态文件包含初始公用静态文件GY、融合项目的初始专用静态文件rh1和rh2。
服务端可以调用打包工具,按照第三入口文件中记录的第三配置参数,对子项目A的第二打包文件和子项目B的第二打包文件进行打包,即记录第二专用静态文件A1、A2、B1、B2的存储位置。类似的,服务端可以调用打包工具,按照第三入口文件中记录的第四配置参数对融合项目的初始公用静态文件GY、初始专用静态文件rh1和rh2进行打包,即记录初始公用静态文件GY的存储位置、引入初始专用静态文件rh1和rh2。由此,服务端可以确定打包后的第一打包文件。第一打包文件包含融合项目的第一专用静态文件RH,第一打包文件的出口文件中,记录有第二专用静态文件A1、A2、B1、B2的文件名称和存储位置、公用静态文件GY的文件名称和存储位置。
本申请实施例中,服务端可以先针对每个子项目,对该子项目的初始静态文件进行打包处理,得到打包后的与该子项目对应的第二打包文件,然后,服务端可以对各子项目对应的第二打包文件和融合项目的初始静态文件进行打包处理,得到打包后的第一打包文件。由于生成每个子项目对应的第二打包文件,在融合项目的第一打包文件中引用第二打包文件的存储位置,因此,在项目融合后,服务端可以通过读取每个子项目的第二打包文件的方式,单独访问每个子项目。
后续需要对子项目进行更改时,服务端只需重新生成第二打包文件,无需对第二打包文件的存储位置和文件名称进行更改,即,无需对融合项目的第三入口文件进行更改,因此,对单个第二打包文件的修改即可实现融合项目的修改,从而能够降低运维成本。
本申请实施例中,第一打包文件和第二打包文件的文件格式符合预设文件格式规范,预设文件格式规范例如AMD(Asynchronous Module Definition,异步模块加载机制)、CMD(Common Module Definition,通用模块定义)、UMD(Universal Module Definition,通用模块定义规范)规范。
可选的,本申请实施例提供了一种服务端基于第一打包文件的存储位置,生成融合项目页面的页面代码的实现方式,包括以下步骤:
步骤一、在第一打包文件的存储位置中,分别确定每个子项目的第二专用静态文件的存储位置、第一专用静态文件的存储位置和公用静态文件的存储位置。
步骤二、生成包含每个子项目的第二专用静态文件的存储位置、第一专用静态文件的存储位置和公用静态文件的存储位置的页面代码,得到融合项目页面的页面代码。
在实施中,服务端可以在预设页面代码中,对应存储每个子项目、该子项目对应的第二专用静态文件的存储位置,对应存储融合项目、第一专用静态文件的存储位置和公用静态文件的存储位置,得到融合项目页面的页面代码。
本申请实施例中,服务端可以在第一打包文件的存储位置中,分别确定每个子项目的第二专用静态文件的存储位置、第一专用静态文件的存储位置和公用静态文件的存储位置,然后,生成包含每个子项目的第二专用静态文件的存储位置、第一专用静态文件的存储位置和公用静态文件的存储位置的页面代码,得到融合项目页面的页面代码。由于在融合项目页面的页面代码中分别存储各子项目的第二专用静态文件的存储位置,因此,后续客户端仅需获取目标子项目的第二专用静态文件,即可实现目标子项目页面的显示,无需重复获取公用静态文件,从而能够减少子项目页面加载时间,提高用户体验。
本申请实施例还提供了一种数据处理方法,可以应用于客户端,客户端可以是具有数据处理功能、显示功能的电子设备,客户端可以是手机、平板电脑、穿戴式智能设备等。
下面将结合具体实施方式,对本申请实施例提供的一种应用于客户端的数据处理方法进行详细的说明,如图3所示,具体步骤如下:
步骤301、响应于融合项目页面的显示操作,获取融合项目页面的页面代码。
其中,页面代码中记录有融合项目的公用静态文件的存储位置、融合项目的第一专用静态文件的存储位置、构成融合项目的每个子项目的第二专用静态文件的存储位置。
在实施中,如果客户端检测到目标融合项目的融合项目页面的显示操作,客户端可以获取融合项目页面的页面代码。显示操作可以是打开应用程序,显示操作也可以是点击预设刷新图标以显示应用程序的首页。
客户端可以通过多种方式获取融合项目页面的页面代码,例如,客户端可以从本地存储的多个融合项目页面的页面代码中,确定显示操作指示的融合项目页面的页面代码。或者,客户端向预设的服务端发送页面代码获取请求,以获取待显示的融合项目页面的页面代码。
步骤302、在页面代码包含的存储位置中,确定显示融合项目页面所需的目标静态文件的第一存储位置。
其中,目标静态文件包括公用静态文件和第一专用静态文件。
在实施中,客户端可以在页面代码包含的存储位置中,查找公用静态文件的存储位置,和第一专用静态文件的存储位置,将查找到的存储位置,作为显示融合项目页面所需的目标静态文件的第一存储位置。
步骤303、从第一存储位置处获取目标静态文件。
可选的,客户端可以通过预设的服务端,从第一存储位置处获取目标静态文件,具体处理过程包括:向预设的服务端发送携带有第一存储位置的第一数据获取请求;然后,服务端可以接收客户端发送的第一数据获取请求,从第一数据获取请求携带的第一存储位置处获取显示融合项目页面所需的目标静态文件,再向客户端发送目标静态文件;之后,客户端可以接收服务端发送的目标静态文件。
步骤304、基于目标静态文件,显示融合项目页面。
在实施中,客户端可以基于目标静态文件渲染html页面,将渲染得到的html页面作为融合项目页面,然后,客户端可以显示融合项目页面。
步骤305、响应于目标子项目页面的显示操作,在页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置。
在实施中,如果客户端检测到目标子项目页面的显示操作,客户端可以在页面代码包含的存储位置中,查找与目标子项目对应的第二专用静态文件的存储位置,得到第二存储位置。目标子项目页面的显示操作可以是点击表示目标子项目的图标,目标子项目页面的显示操作也可以是点击预设刷新图标以显示目标子项目页面。
步骤306、从第二存储位置处获取第二专用静态文件。
可选的,客户端可以通过预设的服务端,从第二存储位置处获取第二专用静态文件,具体处理过程包括:向预设的服务端发送携带有第二存储位置的第二数据获取请求;然后,服务端可以接收客户端发送的第二数据获取请求,从第二数据获取请求携带的第二存储位置处,获取目标子项目的第二专用静态文件,再向客户端发送第二专用静态文件;之后,客户端可以接收服务端发送的第二专用静态文件。
步骤307、基于第二专用静态文件和公用静态文件,显示目标子项目页面。
在实施中,客户端可以基于第二专用静态文件和公用静态文件渲染html页面,将渲染得到的html页面作为目标子项目页面,然后,客户端可以显示目标子项目页面。
本申请实施例中,客户端可以响应于融合项目页面的显示操作,获取融合项目页面的页面代码,页面代码中记录有融合项目的公用静态文件的存储位置、融合项目的第一专用静态文件的存储位置、构成融合项目的每个子项目的第二专用静态文件的存储位置。在页面代码包含的存储位置中确定显示融合项目页面所需的目标静态文件的第一存储位置,目标静态文件包括公用静态文件和第一专用静态文件;从第一存储位置处获取目标静态文件;基于目标静态文件,显示融合项目页面;响应于目标子项目页面的显示操作,在页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置;从第二存储位置处获取第二专用静态文件;基于第二专用静态文件和公用静态文件,显示目标子项目页面。
由于响应于目标子项目页面的显示操作,客户端仅需获取目标子项目的第二专用静态文件,即可实现目标子项目页面的显示,无需重复获取公用静态文件,从而能够减少子项目页面的加载时间,提高用户体验。
本申请实施例还提供了一种数据处理装置,所述装置应用于客户端,如图4所示,所述装置包括:
第一获取模块410,用于响应于融合项目页面的显示操作,获取所述融合项目页面的页面代码,所述页面代码中记录有融合项目的公用静态文件的存储位置、所述融合项目的第一专用静态文件的存储位置、构成所述融合项目的每个子项目的第二专用静态文件的存储位置;
第一确定模块420,用于在所述页面代码包含的存储位置中,确定显示融合项目页面所需的目标静态文件的第一存储位置,所述目标静态文件包括所述公用静态文件和所述第一专用静态文件;
第二获取模块430,用于从所述第一存储位置处获取所述目标静态文件;
显示模块440,用于基于所述目标静态文件,显示所述融合项目页面;
第二确定模块450,用于响应于目标子项目页面的显示操作,在所述页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置;
所述第二获取模块,还用于从所述第二存储位置处获取所述第二专用静态文件;
所述显示模块,还用于基于所述第二专用静态文件和所述公用静态文件,显示所述目标子项目页面。
可选的,所述第二获取模块包括:
发送子模块,用于向预设的服务端发送携带有所述第一存储位置的第一数据获取请求;
接收子模块,用于接收所述服务端发送的目标静态文件;
所述发送子模块,还用于向所述服务端发送携带有所述第二存储位置的第二数据获取请求;
所述接收子模块,还用于接收所述服务端发送的第二专用静态文件。
本申请实施例中,客户端可以响应于融合项目页面的显示操作,获取融合项目页面的页面代码,页面代码中记录有融合项目的公用静态文件的存储位置、融合项目的第一专用静态文件的存储位置、构成融合项目的每个子项目的第二专用静态文件的存储位置。在页面代码包含的存储位置中确定显示融合项目页面所需的目标静态文件的第一存储位置,目标静态文件包括公用静态文件和第一专用静态文件;从第一存储位置处获取目标静态文件;基于目标静态文件,显示融合项目页面;响应于目标子项目页面的显示操作,在页面代码包含的存储位置中确定目标子项目的第二专用静态文件的第二存储位置;从第二存储位置处获取第二专用静态文件;基于第二专用静态文件和公用静态文件,显示目标子项目页面。
由于响应于目标子项目页面的显示操作,客户端仅需获取目标子项目的第二专用静态文件,即可实现目标子项目页面的显示,无需重复获取公用静态文件,从而能够减少子项目页面的加载时间,提高用户体验。
本申请实施例还提供了一种数据处理装置,所述装置应用于服务端,如图5所示,所述装置包括:
获取模块510,用于获取构建融合项目所需的初始静态文件,所述初始静态文件包含所述融合项目的初始公用静态文件、所述融合项目的初始专用静态文件、构成所述融合项目的每个子项目的初始专用静态文件;
打包模块520,用于对所述初始静态文件进行打包处理,得到打包后的第一打包文件,所述第一打包文件包括公用静态文件、所述融合项目的第一专用静态文件、每个所述子项目的第二专用静态文件;
生成模块530,用于基于所述第一打包文件的存储位置,生成融合项目页面的页面代码,所述页面代码中记录有所述公用静态文件的存储位置、所述第一专用静态文件的存储位置、所述第二专用静态文件的存储位置;
第一发送模块540,用于向客户端发送所述页面代码,以便所述客户端基于所述页面代码显示融合项目页面和每个所述子项目的子项目页面。
可选的,所述生成模块包括:
确定子模块,用于在所述第一打包文件的存储位置中,分别确定每个所述子项目的第二专用静态文件的存储位置、所述第一专用静态文件的存储位置和所述公用静态文件的存储位置;
第一生成子模块,用于生成包含每个所述子项目的第二专用静态文件的存储位置、所述第一专用静态文件的存储位置和所述公用静态文件的存储位置的页面代码,得到融合项目页面的页面代码。
可选的,所述打包模块包括:
第一获取子模块,用于获取所述初始静态文件的第一配置参数,其中,所述第一配置参数包括存储位置、引用方式、文件名称中的至少一种,所述初始公用静态文件的引用方式为基于存储位置进行引用;
第二生成子模块,用于生成包含所述第一配置参数的第一入口文件;
第一打包子模块,用于调用打包工具,以按照所述第一入口文件中记录的第一配置参数,对所述初始静态文件进行打包,得到打包后的第一打包文件。
可选的,所述打包模块包括:
第二获取子模块,用于针对构成融合项目的每个所述子项目,获取该子项目的初始静态文件的第二配置参数,其中,所述第二配置参数包括存储位置、引用方式、文件名称中的至少一种,所述初始公用静态文件的引用方式为基于存储位置进行引用;
第二生成子模块,用于生成包含所述第二配置参数的第二入口文件;
第二打包子模块,用于调用打包工具,以按照所述第二入口文件中记录的第二配置参数,对该子项目的初始静态文件进行打包,得到打包后的与该子项目对应的第二打包文件;
所述第二获取子模块,还用于获取各子项目对应的第二打包文件的第三配置参数、融合项目的初始静态文件的第四配置参数;
所述第二生成子模块,还用于生成包含所述第三配置参数和所述第四配置参数的第三入口文件,所述初始公用静态文件的引用方式和所述第二打包文件的引用方式均为基于存储位置进行引用;
所述第二打包子模块,还用于调用打包工具,以按照所述第三入口文件中记录的所述第三配置参数,对所述第二打包文件进行打包,得到第一打包结果,并按照所述第四配置参数对所述融合项目的初始静态文件进行打包,得到第二打包结果;
构成子模块,用于利用所述第一打包结果和所述第二打包结果构成打包后的第一打包文件。
可选的,所述装置还包括:
接收模块,用于接收客户端发送的第一数据获取请求,从所述第一数据获取请求携带的第一存储位置处获取显示融合项目页面所需的目标静态文件,所述目标静态文件包括所述公用静态文件、所述第一专用静态文件;
第二发送模块,用于向所述客户端发送所述目标静态文件,以便所述客户端基于所述目标静态文件显示所述融合项目页面;
所述接收模块,还用于接收客户端发送的第二数据获取请求,从所述第二数据获取请求携带的第二存储位置处,获取目标子项目的第二专用静态文件;
所述第二发送模块,还用于向所述客户端发送所述第二专用静态文件,以便所述客户端基于所述第二专用静态文件和所述公用静态文件显示目标子项目页面。
本申请实施例中,服务端可以获取构建融合项目所需的初始静态文件,对初始静态文件进行打包处理,得到打包后的第一打包文件,第一打包文件包括公用静态文件、融合项目的第一专用静态文件、每个子项目的第二专用静态文件。然后,服务端可以基于第一打包文件的存储位置,生成融合项目页面的页面代码,再向客户端发送该页面代码。
由于在融合项目页面的页面代码中分别记录公用静态文件和每个子项目的第二专用静态文件的存储位置,因此,后续响应于目标子项目页面的显示操作,客户端仅需获取目标子项目的第二专用静态文件,即可实现目标子项目页面的显示,无需重复获取公用静态文件,从而能够减少子项目页面的加载时间,提高用户体验。
基于相同的技术构思,本申请实施例还提供了一种电子设备,电子设备可以是服务端,也可以是客户端,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述由客户端执行的一种数据处理方法步骤,或者,由服务端执行的一种数据处理方法步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据处理方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。