CN113010149B - 应用加载方法、装置、用户终端和服务器 - Google Patents
应用加载方法、装置、用户终端和服务器 Download PDFInfo
- Publication number
- CN113010149B CN113010149B CN201911335288.7A CN201911335288A CN113010149B CN 113010149 B CN113010149 B CN 113010149B CN 201911335288 A CN201911335288 A CN 201911335288A CN 113010149 B CN113010149 B CN 113010149B
- Authority
- CN
- China
- Prior art keywords
- service
- sub
- user
- item data
- data
- 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.)
- Active
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 61
- 238000013515 script Methods 0.000 claims description 26
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 15
- 238000012423 maintenance Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003252 repetitive effect Effects 0.000 description 6
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- VOZKAJLKRJDJLL-UHFFFAOYSA-N 2,4-diaminotoluene Chemical compound CC1=CC=C(N)C=C1N VOZKAJLKRJDJLL-UHFFFAOYSA-N 0.000 description 2
- 238000005316 response function Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种应用加载方法、装置、用户终端和服务器,如果接收到用户对目标应用的访问请求,从目标应用对应的服务端获取并加载对应的主项目数据;从服务端获取包括目标应用中用户的业务对应的子项目数据的访问地址信息的业务配置文件;如果接收到用户对目标应用中指定业务的访问请求,根据业务配置文件中指定业务对应的子项目数据的访问地址信息,从服务端获取并加载对应的子项目数据。该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
Description
技术领域
本发明涉及数据中台技术领域,尤其是涉及一种应用加载方法、装置、用户终端和服务器。
背景技术
相关技术中,对于一个前端应用项目,在开发过程中通常需要划分为多个业务模块,每个业务模块由不同的工程师进行开发;多个业务模块对应的代码数据都维护在一个git(一种分布式版本控制系统)仓库中,因此在开发过程中,需要不断解决业务模块之间的代码冲突,导致开发成本较大;另外,基于这种开发方式得到的应用,在运行过程中,各个业务模块的代码数据都综合在一个文件中,如果业务需要更新,则需要更新整个文件,导致项目的维护成本较高;同时,由于上述文件中的代码数据量较大,加载数据所需的时间较长,从而对用户操作的响应时间也较长。
发明内容
本发明的目的在于提供一种数据加载方法、装置、用户终端和服务器,以降低开发成本和维护成本,缩短加载数据所需的时间。
第一方面,本发明提供的一种应用加载方法,所述方法包括:如果接收到用户对目标应用的访问请求,从所述目标应用对应的服务端获取所述目标应用的主项目数据并加载所述主项目数据;从所述服务端获取所述用户对应的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;如果接收到用户对所述目标应用中指定业务的访问请求,根据所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息,从所述服务端获取所述指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据。
进一步的,所述从所述服务端获取所述用户对应的业务配置文件的步骤,包括:运行所述主项目数据中的指定脚本文件,从而获取所述用户对应的业务配置文件。
进一步的,所述子项目数据的访问地址信息包括:所述子项目数据所在的数据文件的访问地址;所述根据所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息,向所述服务端获取所述指定业务对应的子项目数据的步骤,包括:从所述用户对应的业务配置文件中,查找所述指定业务对应的子项目数据所在的数据文件的第一访问地址;从所述服务端获取所述第一访问地址上的数据文件中保存的子项目数据。
进一步的,所述业务配置文件中还包括:所述用户的各个业务对应的子项目数据之间的依赖关系;所述从所述服务端获取所述第一访问地址上的数据文件中保存的子项目数据的步骤,包括:将所述指定业务对应的子项目数据确定为目标项目数据;根据所述依赖关系,判断加载所述目标项目数据时,是否需要加载除所述目标项目数据以外的子项目数据;如果需要,查找需要加载的除所述目标项目数据以外的子项目数据所在的数据文件的第二访问地址;分别从所述服务端获取所述第一访问地址和所述第二访问地址上的数据文件中保存的子项目数据。
进一步的,所述方法还包括:如果接收到所述用户的业务更新请求,向所述服务端发送所述业务更新请求,以通过所述服务端更新所述用户对应的业务配置文件。
进一步的,所述目标应用包括单页应用。
第二方面,本发明提供的一种应用加载方法,所述方法包括:如果接收到来自客户端的对目标应用的访问请求,向所述客户端提供所述目标应用的主项目数据,以及所述访问请求对应的用户的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;如果接收到来自所述客户端的对所述目标应用中指定业务的访问请求,向所述客户端提供所述指定业务对应的子项目数据;其中,所述指定业务的访问请求中携带有:所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息。
进一步的,所述主项目数据和所述业务对应的子项目数据分别保存在各自的数据文件中,如果所述业务为多种,每种所述业务对应的子项目数据保存在各自的数据文件中。
进一步的,用于保存所述主项目数据的数据文件和用于保存所述业务对应的子项目数据的数据文件,通过下述方式生成:从所述主项目数据所在的git仓库中获取所述主项目数据;从每种所述业务对应的子项目数据所在的git仓库中分别获取相应的子项目数据;通过Webpack对所述主项目数据和所述子项目数据进行打包处理,得到用于保存所述主项目数据的数据文件和用于保存所述业务对应的子项目数据的数据文件。
进一步的,所述业务配置文件为json文件。
第三方面,本发明提供的一种应用加载装置,所述装置包括:第一获取模块,用于如果接收到用户对目标应用的访问请求,从所述目标应用对应的服务端获取所述目标应用的主项目数据并加载所述主项目数据;第二获取模块,用于从所述服务端获取所述用户对应的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;第三获取模块,用于如果接收到用户对所述目标应用中指定业务的访问请求,根据所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息,从所述服务端获取所述指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据。
第四方面,本发明提供的一种应用加载装置,所述装置包括:第一提供模块,用于如果接收到来自客户端的对目标应用的访问请求,向所述客户端提供所述目标应用的主项目数据,以及所述访问请求对应的用户的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;第二提供模块,用于如果接收到来自所述客户端的对所述目标应用中指定业务的访问请求,向所述客户端提供所述指定业务对应的子项目数据;其中,所述指定业务的访问请求中携带有:所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息。
第五方面,本发明提供的一种用户终端,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述第一方面所述的应用加载方法。
第六方面,本发明提供的一种服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述第二方面所述的应用加载方法。
本发明提供的一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述第一方面和第二方面任一项所述的应用加载方法。
本发明提供的应用加载方法、装置、用户终端和服务器,如果接收到用户对目标应用的访问请求,从目标应用对应的服务端获取该目标应用的主项目数据并加载主项目数据;从服务端获取用户对应的,包括目标应用中用户的业务对应的子项目数据的访问地址信息的业务配置文件;如果接收到用户对目标应用中指定业务的访问请求,根据业务配置文件中指定业务对应的子项目数据的访问地址信息,从服务端获取该指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据。该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种前端架构示意图;
图2为本发明实施例提供的一种应用加载方法的流程图;
图3为本发明实施例提供的另一种应用加载方法的流程图;
图4为本发明实施例提供的另一种应用加载方法的流程图;
图5为本发明实施例提供的另一种应用加载方法的流程图;
图6为本发明实施例提供的另一种应用加载方法的流程图;
图7为本发明实施例提供的另一种前端架构示意图;
图8为本发明实施例提供的一种应用加载装置的结构示意图;
图9为本发明实施例提供的另一种应用加载装置的结构示意图;
图10为本发明实施例提供的一种服务器或用户终端。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
前端即网站前台部分,通常运行在PC(Personal Computer,个人计算机)设备,移动终端等设备的客户端或浏览器,用于展现给用户浏览的网页;单页应用可以理解为整个WebApp(World Wide Web Application,Web应用)只有一个HTML(Hyper Text MarkupLanguage,超文本标记语言)文件;目前,对单页应用的前端架构通常采用的方式,可以参照如图1所示的一种前端架构示意图,在一个单页应用前端工程项目中通常包含多个业务,如业务A、业务B、业务C和业务D等,每个业务由不同的开发人员进行开发维护,如:开发人员A负责开发维护业务A、开发人员B负责开发维护业务B等,每个业务对应的代码数据保存在各自的文件夹中,如业务A对应的代码数据保存在文件夹A中,业务B对应的代码数据保存在文件夹B中等,所有业务的文件夹都维护在一个git仓库中。
项目开发完毕后,将所有业务的文件夹汇总为一个总数据文件,即将图1中各个业务的文件夹综合为一个总的文件夹。当用户需要访问指定业务时,用户终端需要先加载包含所有业务数据文件的总数据文件,然后从该总数据文件中获取指定业务相关的数据并显示。
上述方式中,多个开发人员维护一个git仓库,导致在开发过程中,需要不断解决业务之间的代码冲突,如还需要对代码进行合并等,导致开发成本较大;如果业务需要更新,如对代码进行修改或删除等,则需要更新整个文件,导致项目的维护成本较高;并且随着业务增多,总数据文件中的代码数据量会越来越大,用户终端加载数据所需的时间较长,从而对用户操作的响应时间也较长。
基于上述问题,本发明实施例提供了一种应用加载方法、装置、用户终端和服务器,该技术可以应用于各类基于Web的系统和应用,如多网页应用、单网页应用等,尤其是可以应用于JavaScript文件较多,导致代码数据量较大的单网页应用。下面对本发明实施例所公开的一种应用加载方法进行详细介绍,如图2所示,该方法应用于用户终端;该方法包括如下步骤:
步骤S202,如果接收到用户对目标应用的访问请求,从该目标应用对应的服务端获取该目标应用的主项目数据并加载该主项目数据。
上述目标应用可以理解为用户所访问的应用项目,该应用项目可以为单页应用、多页应用等;该目标应用中通常包含一个或多个业务对应的项目数据;上述主项目数据可以不包含具体业务逻辑,一般仅包含目标应用的默认页面的数据;主项目数据主要用于加载其他子项目对应资源的数据。该目标应用的主项目数据,以及各个业务对应的子项目数据均运行在服务端,当用户终端接收到用户对目标应用的访问请求后,从服务端加载该目标应用的主项目数据,以便为用户所需要的具体业务提供加载服务;该主项目数据也可以理解为用户后续访问指定业务的一个接口,通过该主项目数据访问指定业务。
在实际实现时,用户可以通过用户终端上的应用程序、浏览器等客户端发送目标应用的访问请求,该访问请求具体可以为目标应用的网址等信息。本实施例中,目标业务的主项目数据和各个业务对应的子项目数据之间相互独立,均位于各自的文件中。客户端接收到该访问请求后,无需从目标应用对应的服务端获取目标应用全部的代码数据,仅获取并加载主项目数据即可,从而缩短网页数据的加载时间。
步骤S204,从服务端获取上述用户对应的业务配置文件;其中,该业务配置文件中包括目标应用中该用户的业务对应的子项目数据的访问地址信息。
上述用户对应的业务配置文件可以包含用户需要访问或具有访问权限的业务的子项目数据的相关配置信息,如目标应用中用户的业务对应的子项目数据的访问地址、各个业务的子项目数据之间的依赖关系等;可以将业务配置文件与用户之间建立一一对应关系,即一个用户可以对应一个业务配置文件,考虑到不同用户的业务通常会有差异,其所对应的业务配置文件也不同;上述子项目数据可以理解为每个具体业务所对应的具体的项目数据。当接收到用户对目标应用的访问请求后,从服务端获取包括目标应用中用户的业务对应的子项目数据的访问地址信息的业务配置文件。
具体可以通过加载并运行前述步骤获取到的主项目数据,来获取到与用户对应的业务配置文件。
步骤S206,如果接收到上述用户对目标应用中指定业务的访问请求,根据业务配置文件中该指定业务对应的子项目数据的访问地址信息,从服务端获取该指定业务对应的子项目数据,并加载获取到的该指定业务对应的子项目数据。
上述指定业务可以理解为用户在目标应用中所使用的或购买的业务,该业务的数量可以为一个或多个。目标应用的主项目数据中通常包含有访问各个业务的子项目数据的访问接口,用户通过触发指定业务的访问接口,即可向用户终端发送该指定业务的访问请求。当接收到用户对目标应用中指定业务的访问请求后,从该用户对应的业务配置文件中提取该指定业务的配置信息,并根据该配置信息中的访问地址信息,即可从服务端获取该指定业务所对应的子项目数据。
将上述获取到的子项目数据加载至用户的客户端,即可完成用户对该指定业务的访问。需要说明的是,前述步骤中,已经加载目标应用的主项目数据至客户端,当用户需要访问某个指定业务时,再加载该指定业务的子项目数据;如果用户后续还需要访问其他业务,则继续加载该业务的子项目数据。该方式中,实现了目标应用的主项目数据、各业务的子项目数据之间的解耦,各项目数据之间相互独立,相对于一次性加载目标应用全部数据的方式,这种仅加载部分数据的方式降低了加载数据量。
本发明实施例提供的应用加载方法,如果接收到用户对目标应用的访问请求,从目标应用对应的服务端获取该目标应用的主项目数据并加载主项目数据;从服务端获取用户对应的,包括目标应用中用户的业务对应的子项目数据的访问地址信息的业务配置文件;如果接收到用户对目标应用中指定业务的访问请求,根据业务配置文件中指定业务对应的子项目数据的访问地址信息,从服务端获取该指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据。该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
本发明实施例还提供另一种应用加载方法,该方法在上述实施例方法的基础上实现;该方法重点描述从服务端获取用户对应的业务配置文件的具体实现过程,具体对应下述步骤S304,如图3所示,该方法包括以下步骤:
步骤S302,如果接收到用户对目标应用的访问请求,从该目标应用对应的服务端获取该目标应用的主项目数据并加载该主项目数据。
步骤S304,运行上述主项目数据中的指定脚本文件,从而获取上述用户对应的业务配置文件;其中,该业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息。
上述指定脚本文件可以是Python脚本文件,也可以是其他脚本文件;在实际实现时,可以通过运行主项目数据中的指定脚本文件,从服务器获取用户对应的业务配置文件;该业务配置文件可以是json格式的文件。
步骤S306,如果接收到上述用户对目标应用中指定业务的访问请求,根据业务配置文件中该指定业务对应的子项目数据的访问地址信息,从服务端获取该指定业务对应的子项目数据,并加载获取到的该指定业务对应的子项目数据。
上述应用加载方法,当接收到用户对目标应用的访问请求,从目标应用对应的服务端获取并加载目标应用的主项目数据后,运行主项目数据中的指定脚本文件,从而获取用户对应的业务配置文件。该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
本发明实施例还提供另一种应用加载方法,该方法在上述实施例方法的基础上实现;该方法重点描述根据业务配置文件中指定业务对应的子项目数据的访问地址信息,从服务端获取指定业务对应的子项目数据的具体实现过程,具体对应下述步骤S406-步骤S408。
该方法中,子项目数据的访问地址信息包括:子项目数据所在的数据文件的访问地址;业务配置文件中还包括:用户的各个业务对应的子项目数据之间的依赖关系;例如:用户在目标应用中所使用或购买的业务包括业务A和业务B,其中,业务A对应的子项目数据A所在的数据文件A的访问地址为a,业务B对应的子项目数据B所在的数据文件B的访问地址为b,则该用户对应的配置文件中包括访问地址a和访问地址b,以及子项目数据A和子项目数据B之间的依赖关系。
如图4所示,该方法包括以下步骤:
步骤S402,如果接收到用户对目标应用的访问请求,从该目标应用对应的服务端获取该目标应用的主项目数据并加载该主项目数据。
步骤S404,从服务端获取上述用户对应的业务配置文件;其中,该业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息。
步骤S406,如果接收到上述用户对上述目标应用中指定业务的访问请求,从该用户对应的业务配置文件中,查找该指定业务对应的子项目数据所在的数据文件的第一访问地址。
上述第一访问地址可以理解为保存数据文件的具体访问位置;业务配置文件中通常包含有用户指定业务对应的子项目数据所在的数据文件的第一访问地址,当接收到用户对目标应用中指定业务的访问请求后,从该用户对应的业务配置文件中查找所对应的数据文件的第一访问地址。在实际实现时,业务配置文件可以是通过Python脚本所生成的json文件,通过该json文件将子项目数据对应的静态资源加载至用户的客户端。
步骤S408,从服务端获取上述第一访问地址上的数据文件中保存的子项目数据。
当通过上述步骤查找到对应的数据文件的第一访问地址后,从服务端获取该第一访问地址上的数据文件,并从该数据文件中提取出所保存的子项目数据。在实际实现时,该步骤S408可以通过以下步骤实现:
步骤40,将指定业务对应的子项目数据确定为目标项目数据。
上述目标项目数据可以理解为查找到的上述第一访问地址上的数据文件中,实际所保存的子项目数据。
步骤41,根据上述依赖关系,判断加载目标项目数据时,是否需要加载除目标项目数据以外的子项目数据。
上述依赖关系可以理解为各个子项目数据之间的耦合关系;当加载上述目标项目数据时,需要判断是否存在与该目标项目数据存在耦合关系的其他子项目数据。
步骤42,如果需要,查找需要加载的除目标项目数据以外的子项目数据所在的数据文件的第二访问地址。
若通过判断,确认存在与该目标项目数据存在耦合关系的其他子项目数据,则在提取该目标项目数据时,需要同时提取出与其存在耦合关系的其他子项目数据,这时,通常需要先从该用户对应的业务配置文件中查找其他子项目数据所在的数据文件的第二访问地址。
步骤43,分别从服务端获取第一访问地址和第二访问地址上的数据文件中保存的子项目数据。
从服务端获取第一访问地址上的数据文件中保存的目标项目数据,以及,从第二访问地址上的数据文件中保存的子项目数据;作为示例,如果子项目数据A为目标项目数据,子项目数据B与子项目数据A之间存在一定的关联关系,则需要同时提取子项目数据A和子项目数据B。
步骤S410,加载获取到的上述指定业务对应的子项目数据。
上述应用加载方法,当接收到用户对目标应用中指定业务的访问请求后,从该用户对应的业务配置文件中,查找该指定业务对应的子项目数据所在的数据文件的访问地址,获取该访问地址上的数据文件中保存的子项目数据,以及与该子项目数据存在依赖关系的其他子项目数据。该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
本发明实施例还提供另一种应用加载方法,该方法在上述实施例方法的基础上实现;如图5所示,该方法包括以下步骤:
步骤S502,如果接收到用户对目标应用的访问请求,从该目标应用对应的服务端获取该目标应用的主项目数据并加载该主项目数据。
步骤S504,从服务端获取上述用户对应的业务配置文件;其中,该业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息。
步骤S506,如果接收到上述用户对目标应用中指定业务的访问请求,根据业务配置文件中该指定业务对应的子项目数据的访问地址信息,从服务端获取该指定业务对应的子项目数据,并加载获取到的该指定业务对应的子项目数据。
步骤S508,如果接收到上述用户的业务更新请求,向服务端发送该业务更新请求,以通过服务端更新该用户对应的业务配置文件。
上述业务更新请求可以理解为用户需要增加或删除业务的请求等,当接收到用户的业务更新请求后,向服务端发送该业务更新请求,以使服务端根据该业务更新请求,更新该用户的业务配置文件,作为示例,如果用户请求增加业务,则在该用户的业务配置文件中增加该业务对应的子项目数据的相关配置信息,同时增加该业务与其它业务之间的依赖关系;如果用户请求删除指定业务,则在该用户的业务配置文件中删除该指定业务对应的子项目数据的相关配置信息,同时删除该业务与其它业务之间的依赖关系。
上述应用加载方法,当接收到用户的业务更新请求后,向服务端发送业务更新请求,以通过服务端更新用户对应的业务配置文件。该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。在上述目标应用的维护阶段,如果用户需要更新业务,或业务功能本身需要更新,只需要更新该业务对应的子项目数据即可,无需整体修改应用代码,项目的维护成本较低。
本发明实施例还提供另一种应用加载方法,该方法可以应用于服务端,该服务端可以运行在网页服务器、代理服务器等服务器上;如图6所示,该方法包括如下步骤:
步骤S602,如果接收到来自客户端的对目标应用的访问请求,向客户端提供该目标应用的主项目数据,以及该访问请求对应的用户的业务配置文件;其中,该业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息。
上述目标应用可以包括单页应用,也可以包括多页应用等其他应用项目;其中,单页应用可以理解为整个WebApp只有一个HTML文件,里面的各个功能页面是javascript通过hash或者history api来进行路由,并通过ajax(Asynchronous Javascript And XML,异步JavaScript和XML)拉取数据来实现的响应功能,上述整个WebApp只有一个HTML的应用即为单页应用;还可以理解为,在应用整个使用流程中,浏览器由始至终没有刷新,所有的数据交互由ajax完成,但有明确的页面区分,即所谓的WebApp。
单页WebApp(single page web application,单页Web应用),可以理解为只有一张Web页面的应用。SPA是加载单个HTML页面并在用户与应用程序交互时动态更新该页面的Web应用程序。浏览器一开始会加载必需的HTML、CSS(Cascading Style Sheets,层叠样式表)和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。
当接收到来自客户端的对目标应用的访问请求后,向客户端提供目标应用的主项目数据,以及访问请求对应的,包括目标应用中用户的业务对应的子项目数据的访问地址信息的业务配置文件。
步骤S604,如果接收到来自客户端的对目标应用中指定业务的访问请求,向客户端提供该指定业务对应的子项目数据;其中,该指定业务的访问请求中携带有:业务配置文件中指定业务对应的子项目数据的访问地址信息。
当服务端接收到来自客户端的对目标应用中指定业务的访问请求,向客户端提供指定业务对应的子项目数据;其中,该子项目数据通常包括,该指定业务对应的目标项目数据,以及与该目标项目数据有依赖关系的其他子项目数据;该访问请求中通常携带有指定业务对应的目标项目数据的访问地址信息,以及与该目标项目数据有依赖关系的其他子项目数据的访问地址信息。
上述应用加载方法,可以应用于服务端,如果接收到来自客户端的对目标应用的访问请求,向客户端提供目标应用的主项目数据,以及访问请求对应的用户的业务配置文件;如果接收到来自客户端的对目标应用中指定业务的访问请求,向客户端提供指定业务对应的子项目数据;该方法中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
另外,上述目标应用在开发阶段,目标应用中的主项目数据和各个业务对应的子项目数据分别维护在不同的git仓库中,避免了所有的业务的代码数据都维护在同一个git仓库中导致的代码冲突,从而降低了项目开发成本。在上述目标应用的维护阶段,如果用户需要更新业务,或业务功能本身需要更新,只需要更新该业务对应的子项目数据即可,无需整体修改应用代码,项目的维护成本较低。
本发明实施例还提供另一种应用加载方法,该方法在上述实施例方法的基础上实现;该方法包括如下步骤:
步骤702,如果接收到来自客户端的对目标应用的访问请求,向客户端提供目标应用的主项目数据,以及访问请求对应的用户的业务配置文件;其中,业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息。
上述目标应用包括主项目数据所在的数据文件和至少一种业务对应的子项目数据所在的数据文件;该主项目数据和该业务对应的子项目数据分别保存在各自的数据文件中;如果业务为多种,每种业务对应的子项目数据保存在各自的数据文件中,例如,目标应用中共开发了两个业务,分别为业务A和业务B,主项目数据保存在数据文件main中,业务A对应的子项目数据保存在数据文件A中,业务B对应的子项目数据保存在数据文件B中,则目标应用中包括数据文件main和数据文件A,或者数据文件main和数据文件B,或者同时包含该数据文件main、数据文件A和数据文件B;上述各数据文件之间相互独立。
用于保存主项目数据的数据文件和用于保存业务对应的子项目数据的数据文件,可以通过以下步骤70-步骤72生成:
步骤70,从上述主项目数据所在的git仓库中获取该主项目数据。
在应用开发过程中,主项目数据维护在一个单独的git仓库中,该git仓库可以是一个开源的分布式版本控制系统,可以理解为托管在网络上的项目仓库,其中可以包括一个或多个业务对应的项目数据;GitHub是一个面向开源及私有软件项目的托管平台,只支持git作为唯一的版本库格式进行托管。如果git仓库中包含主项目数据,则从该git仓库中获取该主项目数据,在实际实现时,上述包含主项目数据的git仓库可以用“git仓库main”来表示。
步骤71,从每种业务对应的子项目数据所在的git仓库中分别获取相应的子项目数据。
在项目开发过程中,每个业务的子项目数据维护在一个单独的git仓库中,即,每种业务对应的子项目数据存储在各自独立的git仓库中,因而通常在每种业务及其该业务对应的子项目数据与git仓库之间建立一一对应关系,各个子项目数据之间相互独立,彼此之间耦合程度较低。例如,git仓库A中包含业务A及该业务A对应的子项目数据A,git仓库B中包含业务B及该业务B对应的子项目数据B等等。
目标应用开发完成后,从各个git仓库中分别获取对应的子项目数据,例如,从git仓库A中获取子项目数据A,从git仓库B中获取子项目数据B等,每个子项目数据形成一个单独的数据文件,主项目数据也形成一个单独的数据文件。目标应用在维护过程中,可以根据客户需求,方便地增加或删除新的子项目数据,并且不需要整体修改目标应用的代码,例如,目标应用开发了三个业务,分别为业务A、业务B和业务C,用户购买了业务A和业务B,如果用户还需要购买业务C,则在该用户对应的配置文件中增加业务C的相关配置信息;如果用户不再需要业务A或业务B,通常从配置文件中删除该业务A或业务B的相关配置信息即可;如果需要对目标应用开发新的业务D,则在项目开发过程中,为业务D建立对应的git仓库D,开发完成后,生成该业务D的子项目数据对应的数据文件。
步骤72,通过Webpack对上述主项目数据和上述子项目数据进行打包处理,得到该主项目数据所在的数据文件和每种业务对应的子项目数据所在的数据文件。
本实施例中,上述Webpack可以用于对项目中的一个或多个业务所对应的项目数据进行打包,在打包过程中分析各个业务对应的项目数据之间的依赖关系,例如:一个项目数据和另外一个或多个项目数据之间的关联关系,如引用关系等;具体的,通过Webpack对主项目数据进行打包处理,得到包含主项目数据的数据文件;通过Webpack对各个子项目数据分别进行打包处理,得到分别包含各个子项目数据的数据文件。
步骤704,如果接收到来自客户端的对目标应用中指定业务的访问请求,向客户端提供指定业务对应的子项目数据;其中,指定业务的访问请求中携带有:业务配置文件中指定业务对应的子项目数据的访问地址信息。
上述目标应用在开发阶段,目标应用中的主项目数据和各个业务对应的子项目数据分别维护在不同的git仓库中,避免了所有的业务的代码数据都维护在同一个git仓库中导致的代码冲突,从而降低了项目开发成本。在上述目标应用的维护阶段,如果用户需要更新业务,或业务功能本身需要更新,只需要更新该业务对应的子项目数据即可,无需整体修改应用代码,项目的维护成本较低。
为进一步理解上述实施例,下面提供另一种前端架构示意图,如图7所示,项目开发过程中,通常会创建多个git仓库,主项目数据保存在git仓库main中,主项目数据通常不包含业务逻辑,主要负责加载子项目数据资源;多个子项目数据分别保存在各自对应的git仓库中,保存在git仓库A中的业务A及其对应的子项目数据A由开发人员A负责开发和维护,保存在git仓库B中的业务B及其对应的子项目数据B由开发人员B负责开发和维护等。git仓库main与git仓库A、git仓库B等之间是相互独立的;通过Python脚本生成子项目静态资源配置json文件,通过json文件加载子项目数据对应的静态资源。项目开发完成后,将所创建的多个git仓库上传至服务器,每个子项目数据形成一个单独的数据文件,主项目数据也形成一个单独的数据文件。
在项目运行过程中,根据用户在客户端上的操作指令,向服务端发送指定业务的访问请求,由主项目数据根据该用户的业务配置文件加载不同的子项目数据对应的数据文件即可,该用户的业务配置文件中还记录了各个子项目数据之间的依赖关系。如果用户只需要一部分业务,如业务A、业务B和业务C,则只需要生成业务A、业务B和业务C的业务配置文件即可,一个用户对应一个业务配置文件,业务配置文件所指向的子项目数据即为用户所需要的子项目数据。相关技术中,对于单页应用项目,比如,开始只有一个业务项,后期可能会拓展至十几个业务项,导致单页应用项目中会包含较多的业务配置文件,项目比较复杂;而本方案中的架构方式,只需要根据用户指定的业务需求生成对应的业务配置文件即可,可以有效降低单页应用项目的复杂度。
上述架构方式基于Webpack技术,把各个业务拆分成为单个独立的git仓库,然后通过Jenkins发布上线;可以理解为在客户端和后端大数据之间设置了一个数据中台,该数据中台可以理解为通过数据技术,对海量数据进行采集、计算、存储、加工,同时统一标准和口径。用户在控制台可以管理大数据信息,如查看监控、操作数据库等。
企业在服务于用户时,不同的用户可能是不同的需求,企业在企业和用户之间,设置一个数据中台,数据中台把数据统一之后,会形成标准数据,再进行存储,形成大数据资产层,进而为客户提供高效服务,最大程度保障不同群体的用户需求。这些服务跟企业的业务有较强的关联性,是企业独有的且能复用的,它是企业业务和数据的沉淀,其不仅能降低重复建设、减少烟囱式协作的成本,也是差异化竞争优势所在。
在当今互联网时代,用户才是商业战场的中心,为了快速响应用户的需求,借助平台化的力量可以事半功倍。不断快速响应、探索、挖掘、引领用户的需求,才是企业得以生存和持续发展的关键因素。
上述实施例所述的方法,也可以理解为一种前端自动化脚手架架构;其中,前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。脚手架可以理解为项目开发的前期工作。每开始新建一个项目,需要先搭建好整个文件目录结构,建好必要的文件,即为搭建脚手架的过程,每次新建项目都需要这个过程,脚手架可以减少用户的重复性工作。
作为示例,如果用户需要新建一个项目0,源语言为ES6(ECMAScript6,一种JavaScript语音标准),采用sass(Syntactically Awesome Stylesheets,审计准则说明书)语言,后端是node.js(node.js是服务器端的JavaScript运行环境)。用户每完成一部分功能,需要重复执行把ES6编译到ES5、编译sass、压缩html文件的操作过程;为了减少上述重复性工作,用户可以采用gulp(一种基于node的自动化构建工具)工具,实现在前端开发过程中对代码进行自动化构建,用户可以预先准备好gulp脚本,每次有代码改动,通过简单的gulp build就可以完成上述重复性工作。
如果用户还需要新建项目1,项目2、项目3等,并且与项目0一样,采用源语言为ES6,sass语言,后端是node.js,每次都用相同的技术栈,就需要用户为后续的多个项目重复准备类似gulp脚本,即,准备多个gulp脚本也成了重复性工作。而脚手架可以帮助用户减少这些重复性工作,通过脚手架就可以建好目录结构、gulp脚本、babel配置、空的测试文件,用户可以直接写核心业务代码,节省了用户的重复性工作,这就是脚手架的作用。
对应于上述方法实施例,参见图8所示的一种应用加载装置的结构示意图,该装置包括:第一获取模块80,用于如果接收到用户对目标应用的访问请求,从目标应用对应的服务端获取目标应用的主项目数据并加载主项目数据;第二获取模块81,用于从服务端获取用户对应的业务配置文件;其中,业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息;第三获取模块82,用于如果接收到用户对目标应用中指定业务的访问请求,根据业务配置文件中指定业务对应的子项目数据的访问地址信息,从服务端获取指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据。
本发明实施例提供的应用加载装置,如果接收到用户对目标应用的访问请求,从目标应用对应的服务端获取该目标应用的主项目数据并加载主项目数据;从服务端获取用户对应的,包括目标应用中用户的业务对应的子项目数据的访问地址信息的业务配置文件;如果接收到用户对目标应用中指定业务的访问请求,根据业务配置文件中指定业务对应的子项目数据的访问地址信息,从服务端获取该指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据。该装置中,目标应用中的主项目数据和各个业务对应的子项目数据之间相互独立,同时,通过用户对应的业务配置文件即可获取该用户所使用的业务的子项目数据,用户终端无需加载目标应用的全部的项目数据,因而缩短了加载时延,提高了目标应用的用户体验度。
进一步的,第二获取模块81还用于:运行主项目数据中的指定脚本文件,从而获取用户对应的业务配置文件。
进一步的,子项目数据的访问地址信息包括:子项目数据所在的数据文件的访问地址;第三获取模块82还用于:从用户对应的业务配置文件中,查找指定业务对应的子项目数据所在的数据文件的第一访问地址;从服务端获取第一访问地址上的数据文件中保存的子项目数据。
进一步的,业务配置文件中还包括:用户的各个业务对应的子项目数据之间的依赖关系;第三获取模块82还用于:将指定业务对应的子项目数据确定为目标项目数据;根据依赖关系,判断加载目标项目数据时,是否需要加载除目标项目数据以外的子项目数据;如果需要,查找需要加载的除目标项目数据以外的子项目数据所在的数据文件的第二访问地址;分别从服务端获取第一访问地址和第二访问地址上的数据文件中保存的子项目数据。
进一步的,该装置还用于:如果接收到用户的业务更新请求,向服务端发送业务更新请求,以通过服务端更新用户对应的业务配置文件。
进一步的,目标应用包括单页应用。
本发明实施例所提供的应用加载装置,其实现原理及产生的技术效果和前述应用加载方法实施例相同,为简要描述,应用加载装置实施例部分未提及之处,可参考前述应用加载方法实施例中相应内容。
对应于上述方法实施例,参见图9所示的另一种应用加载装置的结构示意图,该装置包括:第一提供模块90,用于如果接收到来自客户端的对目标应用的访问请求,向客户端提供目标应用的主项目数据,以及访问请求对应的用户的业务配置文件;其中,业务配置文件中包括目标应用中用户的业务对应的子项目数据的访问地址信息;第二提供模块91,用于如果接收到来自客户端的对目标应用中指定业务的访问请求,向客户端提供指定业务对应的子项目数据;其中,指定业务的访问请求中携带有:业务配置文件中指定业务对应的子项目数据的访问地址信息。
进一步的,主项目数据和业务对应的子项目数据分别保存在各自的数据文件中,如果业务为多种,每种业务对应的子项目数据保存在各自的数据文件中。
进一步的,用于保存主项目数据的数据文件和用于保存业务对应的子项目数据的数据文件,通过下述方式生成:从主项目数据所在的git仓库中获取主项目数据;从每种业务对应的子项目数据所在的git仓库中分别获取相应的子项目数据;通过Webpack对主项目数据和子项目数据进行打包处理,得到用于保存主项目数据的数据文件和用于保存业务对应的子项目数据的数据文件。
另外,上述目标应用在开发阶段,目标应用中的主项目数据和各个业务对应的子项目数据分别维护在不同的git仓库中,避免了所有的业务的代码数据都维护在同一个git仓库中导致的代码冲突,从而降低了项目开发成本。在上述目标应用的维护阶段,如果用户需要更新业务,或业务功能本身需要更新,只需要更新该业务对应的子项目数据即可,无需整体修改应用代码,项目的维护成本较低。
本发明实施例还提供了一种服务器和用户终端,参见图10所示,该服务器或用户终端包括处理器130和存储器131,该存储器131存储有能够被处理器130执行的机器可执行指令,该处理器130执行机器可执行指令以实现上述应用加载方法。
进一步地,图10所示的服务器或用户终端还包括总线132和通信接口133,处理器130、通信接口133和存储器131通过总线132连接。
其中,存储器131可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口133(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线132可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器130可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器130中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器131,处理器130读取存储器131中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述应用加载方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的应用加载方法、装置、用户终端和服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种应用加载方法,其特征在于,所述方法包括:
如果接收到用户对目标应用的访问请求,从所述目标应用对应的服务端获取所述目标应用的主项目数据并加载所述主项目数据;
从所述服务端获取所述用户对应的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;
如果接收到用户对所述目标应用中指定业务的访问请求,根据所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息,从所述服务端获取所述指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据;
所述从所述服务端获取所述用户对应的业务配置文件的步骤,包括:
运行所述主项目数据中的指定脚本文件,从而获取所述用户对应的业务配置文件;其中,所述指定脚本文件为Python脚本文件,所述业务配置文件为json格式的文件。
2.根据权利要求1所述的方法,其特征在于,所述子项目数据的访问地址信息包括:所述子项目数据所在的数据文件的访问地址;
所述根据所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息,从所述服务端获取所述指定业务对应的子项目数据的步骤,包括:
从所述用户对应的业务配置文件中,查找所述指定业务对应的子项目数据所在的数据文件的第一访问地址;
从所述服务端获取所述第一访问地址上的数据文件中保存的子项目数据。
3.根据权利要求2所述的方法,其特征在于,所述业务配置文件中还包括:所述用户的各个业务对应的子项目数据之间的依赖关系;
所述从所述服务端获取所述第一访问地址上的数据文件中保存的子项目数据的步骤,包括:
将所述指定业务对应的子项目数据确定为目标项目数据;
根据所述依赖关系,判断加载所述目标项目数据时,是否需要加载除所述目标项目数据以外的子项目数据;
如果需要,查找需要加载的除所述目标项目数据以外的子项目数据所在的数据文件的第二访问地址;
分别从所述服务端获取所述第一访问地址和所述第二访问地址上的数据文件中保存的子项目数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果接收到所述用户的业务更新请求,向所述服务端发送所述业务更新请求,以通过所述服务端更新所述用户对应的业务配置文件。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述目标应用包括单页应用。
6.一种应用加载方法,其特征在于,所述方法包括:
如果接收到来自客户端的对目标应用的访问请求,向所述客户端提供所述目标应用的主项目数据,以及所述访问请求对应的用户的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;
如果接收到来自所述客户端的对所述目标应用中指定业务的访问请求,向所述客户端提供所述指定业务对应的子项目数据;其中,所述指定业务的访问请求中携带有:所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息;
向所述客户端提供所述访问请求对应的用户的业务配置文件的步骤包括:
通过所述客户端运行所述主项目数据中的指定脚本文件,向所述客户端提供所述访问请求对应的用户的业务配置文件;其中,所述指定脚本文件为Python脚本文件,所述业务配置文件为json格式的文件。
7.根据权利要求6所述的方法,其特征在于,所述主项目数据和所述业务对应的子项目数据分别保存在各自的数据文件中,如果所述业务为多种,每种所述业务对应的子项目数据保存在各自的数据文件中。
8.根据权利要求7所述的方法,其特征在于,用于保存所述主项目数据的数据文件和用于保存所述业务对应的子项目数据的数据文件,通过下述方式生成:
从所述主项目数据所在的git仓库中获取所述主项目数据;
从每种所述业务对应的子项目数据所在的git仓库中分别获取相应的子项目数据;
通过Webpack对所述主项目数据和所述子项目数据进行打包处理,得到用于保存所述主项目数据的数据文件和用于保存所述业务对应的子项目数据的数据文件。
9.根据权利要求6所述的方法,其特征在于,所述业务配置文件为json文件。
10.一种应用加载装置,其特征在于,所述装置包括:
第一获取模块,用于如果接收到用户对目标应用的访问请求,从所述目标应用对应的服务端获取所述目标应用的主项目数据并加载所述主项目数据;
第二获取模块,用于从所述服务端获取所述用户对应的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;
第三获取模块,用于如果接收到用户对所述目标应用中指定业务的访问请求,根据所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息,从所述服务端获取所述指定业务对应的子项目数据,并加载获取到的指定业务对应的子项目数据;
所述第二获取模块还用于:
运行所述主项目数据中的指定脚本文件,从而获取所述用户对应的业务配置文件;其中,所述指定脚本文件为Python脚本文件,所述业务配置文件为json格式的文件。
11.一种应用加载装置,其特征在于,所述装置包括:
第一提供模块,用于如果接收到来自客户端的对目标应用的访问请求,向所述客户端提供所述目标应用的主项目数据,以及所述访问请求对应的用户的业务配置文件;其中,所述业务配置文件中包括所述目标应用中所述用户的业务对应的子项目数据的访问地址信息;
第二提供模块,用于如果接收到来自所述客户端的对所述目标应用中指定业务的访问请求,向所述客户端提供所述指定业务对应的子项目数据;其中,所述指定业务的访问请求中携带有:所述业务配置文件中所述指定业务对应的子项目数据的访问地址信息;
所述第一提供模块还用于:
通过所述客户端运行所述主项目数据中的指定脚本文件,向所述客户端提供所述访问请求对应的用户的业务配置文件;其中,所述指定脚本文件为Python脚本文件,所述业务配置文件为json格式的文件。
12.一种用户终端,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至5任一项所述的应用加载方法。
13.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求6-9任一项所述的应用加载方法。
14.一种机器可读存储介质,其特征在于,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现权利要求1至9任一项所述的应用加载方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911335288.7A CN113010149B (zh) | 2019-12-20 | 2019-12-20 | 应用加载方法、装置、用户终端和服务器 |
PCT/CN2020/126880 WO2021120913A1 (zh) | 2019-12-20 | 2020-11-06 | 应用加载方法、装置、用户终端和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911335288.7A CN113010149B (zh) | 2019-12-20 | 2019-12-20 | 应用加载方法、装置、用户终端和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010149A CN113010149A (zh) | 2021-06-22 |
CN113010149B true CN113010149B (zh) | 2024-04-05 |
Family
ID=76383021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911335288.7A Active CN113010149B (zh) | 2019-12-20 | 2019-12-20 | 应用加载方法、装置、用户终端和服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113010149B (zh) |
WO (1) | WO2021120913A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385191A (zh) * | 2021-12-11 | 2022-04-22 | 埃夫特智能装备股份有限公司 | 一种基于git的知识资产交易管理系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007179209A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 業務プロセスやドキュメントの記録・管理方法 |
CN108228305A (zh) * | 2018-02-02 | 2018-06-29 | 广东欧珀移动通信有限公司 | 应用页面的显示方法、装置、存储介质及电子设备 |
CN109284458A (zh) * | 2018-09-28 | 2019-01-29 | 平安普惠企业管理有限公司 | 网页显示方法、装置、计算机设备及存储介质 |
CN109542538A (zh) * | 2018-11-22 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种子系统管理方法和系统 |
CN109783076A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 基于git的代码管理方法、装置、设备和存储介质 |
CN110365724A (zh) * | 2018-04-08 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7454434B1 (en) * | 2004-10-04 | 2008-11-18 | American Express Travel Related Services Company, Inc. | System and method for stepped loading of web page content |
CN106293311B (zh) * | 2015-05-26 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 基于移动应用的页面显示方法、客户端、服务器及平台 |
CN105260206B (zh) * | 2015-10-10 | 2018-10-16 | 北京京东尚科信息技术有限公司 | 数据源插件实现方法及服务器 |
CN105975319A (zh) * | 2016-05-26 | 2016-09-28 | 天脉聚源(北京)传媒科技有限公司 | 一种加载应用程序的方法及装置 |
-
2019
- 2019-12-20 CN CN201911335288.7A patent/CN113010149B/zh active Active
-
2020
- 2020-11-06 WO PCT/CN2020/126880 patent/WO2021120913A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007179209A (ja) * | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 業務プロセスやドキュメントの記録・管理方法 |
CN108228305A (zh) * | 2018-02-02 | 2018-06-29 | 广东欧珀移动通信有限公司 | 应用页面的显示方法、装置、存储介质及电子设备 |
CN110365724A (zh) * | 2018-04-08 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置及电子设备 |
CN109284458A (zh) * | 2018-09-28 | 2019-01-29 | 平安普惠企业管理有限公司 | 网页显示方法、装置、计算机设备及存储介质 |
CN109542538A (zh) * | 2018-11-22 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种子系统管理方法和系统 |
CN109783076A (zh) * | 2018-12-14 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 基于git的代码管理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021120913A1 (zh) | 2021-06-24 |
CN113010149A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102055024B1 (ko) | 클라이언트측 최소 다운로드 및 시뮬레이션 페이지 네비게이션 기능 | |
US10437570B2 (en) | Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage | |
US10404789B2 (en) | Systems, method, and non-transitory computer-readable storage media for generating code for displaying a webpage | |
CN106293675B (zh) | 系统静态资源加载方法及装置 | |
CN106547527B (zh) | 一种JavaScript文件构建方法及装置 | |
CN112148356B (zh) | 文档生成方法、接口开发方法、装置、服务器及存储介质 | |
US10769220B1 (en) | Systems, apparatuses, and methods of processing and managing web traffic data | |
CN107391528B (zh) | 前端组件依赖信息搜索方法及设备 | |
CN115982491A (zh) | 页面更新方法及装置、电子设备和计算机可读存储介质 | |
CN113010149B (zh) | 应用加载方法、装置、用户终端和服务器 | |
US11775290B2 (en) | Detection of API backward compatibility across software versions | |
CN113835737A (zh) | 一种前端项目添加权限的方法及系统 | |
CN112947900B (zh) | web应用开发方法、装置、服务器及开发终端 | |
CN115202756A (zh) | 基于Vue的组件加载方法、系统和电子设备 | |
CN115048082A (zh) | 微前端系统构建方法、装置、服务器及可读存储介质 | |
US20170031884A1 (en) | Automated dependency management based on page components | |
CN114637499A (zh) | 可视化组件处理方法、装置、设备及介质 | |
CN111125605B (zh) | 页面元素获取方法和装置 | |
US9323425B2 (en) | Deferred data post | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof | |
CN113657077B (zh) | 一种文档可变章节在线编写方法及可读存储介质 | |
CN116243961A (zh) | 版本文件的处理方法、装置、电子设备及存储介质 | |
CN115994094A (zh) | 基于机器学习的自动化测试方法、装置、设备及介质 | |
CN116991735A (zh) | 前端组件变更的测试系统、方法、装置、设备及存储介质 | |
CN113391930A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |