CN109783744A - 页面启动方法、装置、终端及计算机可读存储介质 - Google Patents
页面启动方法、装置、终端及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109783744A CN109783744A CN201811482874.XA CN201811482874A CN109783744A CN 109783744 A CN109783744 A CN 109783744A CN 201811482874 A CN201811482874 A CN 201811482874A CN 109783744 A CN109783744 A CN 109783744A
- Authority
- CN
- China
- Prior art keywords
- packet
- business
- page
- module
- code
- 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.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种页面启动方法、装置、终端及计算机可读存储介质,所述拆分方法包括:在客户端页面启动时,从服务器上获取业务方的包文件;判断所述包文件中是否包括分包的标识信息;如果包括分包的标识信息,则初始化内置的基础框架公共包;在进入业务方的页面时,加载所述包文件中包括业务代码的业务包;对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;对合并后的所述业务包进行加载,完成页面启动。本发明实施例中,在客户端页面启动时,先初始化内置的基础框架公共包,在进入业务方的页面时,再加载对应的业务包,增加基础框架公共包的复用率,减小下载包的大小,提高了业务包的下载速度以及页面的加载性能。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种页面启动方法、装置、终端及计算机可读存储介质。
背景技术
随着互联网的发展,APP的种类和数量越来越多,开发人员通过开发各种APP来满足用户需求。
目前,开发人员通过开源的跨平台移动应用开发框架(RN,React Native)开发APP,并且移动终端上的各个APP的业务线页面也越来越多。在RN项目开发完毕后,需要将移动终端11上客户端的RN页面代码打包成一个包(bundle)文件,该bundle文件既包括RN框架代码和业务方的业务代码,二者捆绑在一起。然后,将bundle文件上传到服务器12上,具体如图1所示,图1为现有技术中提供的一种包文件存储的系统结构示意图。在进入业务方页面时,从服务器上下载bundle文件(包括RN框架代码和加载业务代码),然后,先加载RN框架代码,再加载业务代码。但是,一个系统可能有多个子系统,每个子系统对应一个业务方(如漫画,商城,文学等业务方),因此,每个业务方打包成bundle文件都包括RN框架代码和业务代码,由于RN的框架代码其实都差不多,进入不同的业务方的页面时,每次都需要先加载RN框架代码,再加载业务代码,增加了页面的加载时间,并且在bundle文件比较大的情况下,可以明显看见页面加载成功前的白屏时间,比如,0.44版本的bundle文件(包括RN框架代码和业务代码)大小为564KB,其中,RN框架代码的大小为504KB,而业务代码大小只有60KB。因此,为了提高页面的加载速度,减小每个bundle文件的大小,有必要进行RN框架代码和业务代码的拆分。
因此,如何减少每个bundle文件的大小,提高页面加载速度是目前有待解决的技术问题。
发明内容
本发明实施例所要解决的技术问题是提供一种页面启动方法,以解决现有技术中在页面启动时,先加载框架代码,在加载业务代码,从而导致页面加载速度降低的技术问题。
相应的,本发明实施例还提供了一种页面启动装置、终端及计算机可读存储介质装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明是通过如下技术方案实现的:
第一方面提供一种页面启动方法,所述方法包括:
在客户端页面启动时,从服务器上获取业务方的包文件;
判断所述包文件中是否包括分包的标识信息;
如果包括分包的标识信息,则初始化内置的基础框架公共包;
在进入业务方的页面时,加载所述包文件中包括业务代码的业务包;
对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;
对合并后的所述业务包进行加载,完成页面启动。
可选的,在客户端页面启动之前,所述方法还包括:
将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
将所述基础框架公共包作为资源文件内置在客户端内部;
将所述多个业务包发送给所述服务器。
可选的,所述将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包包括:
接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;
根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
可选的,在将多个业务包发送给服务器之前,还包括:
将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
为每个业务包标记业务标识;
所述将所述多个业务包发送给服务器包括:将多个标记有业务标识的业务包发送给服务器。
第二方面提供一种页面启动装置,包括:
获取模块,用于在客户端页面启动时,从服务器上获取业务方的包文件;
判断模块,用于判断所述包文件中是否包括分包的标识信息;
初始化模块,用于在所述判断模块判断所述包文件中包括分包的标识信息时,初始化内置的基础框架公共包;
第一加载模块,用于在进入业务方的页面时,加载所述包文件中包括业务代码的业务包;
合并模块,用于对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;
第二加载模块,用于对合并后的所述业务包进行加载,完成页面启动。
可选的,还包括:
拆分模块,用于在客户端页面启动之前,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
预置模块,用于将每个基础框架公共包作为资源文件内置在客户端内部;
发送模块,用于将所述多个业务包发送给所述服务器。
可选的,所述拆分模块包括:
接收模块,用于接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;
拆分子模块,用于根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
可选的,还包括:
打包模块,用于在将多个业务包发送给服务器之前,将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
标记模块,用于为每个业务包标记上业务标识;
所述发送模块,具体用于将多个标记有业务标识的业务包发送给服务器。
第三方面提供一种终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述页面文件的拆分方法的步骤。
第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述页面文件的拆分方法的步骤。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,将页面脚本代码包拆分成基础框架公共包和多个业务包,实现业务代码和基础框架公共的分离,并将基础框架公共包内置在对应的客户端内部,以及将各个业务方的业务包上传到服务器进行存储,以便于在进入业务方的页面时,先初始化内置的基础框架公共包,再加载对应的业务包,从而减小下载包的大小,提高了业务包的下载速度以及页面的加载性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1是现有技术中提供的一种包文件存储的系统结构示意图;
图2是本发明实施例提供的一种页面文件的拆分方法的流程图;
图3是本发明实施例提供的一种页面启动方法的流程图;
图4是本发明实施例提供的一种分包存储方法的流程图;
图5是本发明实施例提供的一种页面文件的拆分装置的结构示意图;
图6是本发明实施例提供的一种页面启动装置的结构示意图;
图7是本发明实施例提供的一种分包存储装置的结构示意图;
图8是本发明实施例提供的一种包文件存储的系统结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
请参阅图2,为本发明实施例提供的一种页面文件的拆分方法的流程图,具体可以包括如下步骤:
步骤201:将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
该步骤中,基础框架公共包(base bundle,也可以称为基础公共框架包)为多个业务包(business bundle)公用的一个基础框架公共包,一个业务包(business bundle)可以包括多个业务方(比如漫画,商城,文学等)对应的业务代码包。
也就是说,该实施例中,基于RN的混合系统应用于移动终端。一个基于RN的混合系统包含三个项目:安卓Android native项目,IOS native项目,React Native项目。其中,当React Native项目开发完毕,就使用打包命令(unbundle)将页面脚本代码打成一个包(bundle)文件,这个bundle文件可以包括RN框架的框架代码和业务方的业务代码。而该步骤中,通过改写RN框架的分包形式的打包命令,将该bundle文件拆分成一个基础框架公共包(包括RN框架代码)和多个业务包,并将每个业务代码包都打包成单独的业务包,即以单独的文件形式存在。也就是说,本实施例中,将所述多个业务包中每个业务包按照业务方代码(简称业务代码)打包成一个单独的业务包;每个业务包标记业务标识并为每个业务包标记上唯一的业务标识ID号。
其中,本发明实施例中的unbundle命令,是通过改写了RN自带的打包命令和相关代码,构建自己的打包工具(qrn_pack),主要是增加—id-suffix参数,该参数表示业务方的唯一前缀ID,其他参数与RN自带的打包命令的含义相同。而打包工具,主要原理是输入打包文件的绝对路径,进而生成对应的ID号,形成一一映射关系。业务方使用该打包命令进行打包,形成一份压缩过的业务bundle文件,它的内容包括是否分包的标识信息,版本信息和一些业务代码等。然后将业务包上传至服务器上便于后续的更新和升级。
步骤202:将所述基础框架公共包作为资源文件内置在客户端内部;
该步骤中,通过拆分得到base bundle作为资源文件预先内置在客户端内部。也即是说,预先将拆分得到的基础框架公共包的内容存储到客户端内部,方便客户端页面启动时,直接初始化内置的基础框架公共包。
步骤203:将所述多个业务包发送给服务器,以便于在页面启动时加载对应的业务包。
该步骤中,将多个business bundle发送给服务器,以便于在进入业务方的页面时,加载业务包。
本发明实施例中,将页面脚本代码包拆分成基础框架公共包和多个业务包,并将基础框架公共包内置在对应的客户端内部,将各个业务方的业务包上传到服务器进行存储。本发明实施例实现了业务代码和基础框架公共的分离,提高了页面的性能与用户体验。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述客户端将页面脚本代码包bundle文件拆分成一个基础框架公共包base bundle和多个业务包businessbundle包括:接收到用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;根据所述打包命令,将页面脚本代码包(bundle)文件拆分成一个基础框架公共包(base bundle)和多个业务包(business bundle)。
可选的,在将多个业务包发送给服务器之前,所述方法还可以包括:将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;为每个业务包标记上唯一的业务标识ID号;将的多个标记有唯一业务标识的业务包发送给服务器。
本发明实施例中,先通过自定义打包脚本代码改写RN框架的分包形式的打包命令,RN框架通过打包命令把一部分业务的代码(即不同APP的基础框架公共代码)合并到一个文件中,作为基础公共包,把另外一部分代码(即每个APP都对应多个业务代码,此处是包括多个APP对应的业务包)分别打包成一个文件,每个文件打出的包进行单文件存储,每个模块的文件(file per module)都包括多个业务方(比如漫画,商城,文学等)的文件。把框架的代码打包成一个文件,把每一个业务方的代码打包成一个单独的文件,多个业务方就有多个业务文件,每个业务文件都有一个唯一的业务标识ID号,其中,业务标识ID号默认是从666666开始的,即入口业务标识ID号是666666,其他业务ID号在此基础上依次递增。
还请参阅图3,为本发明实施例提供的一种页面启动方法的流程图,所述方法包括:
步骤301:在客户端页面启动时,从服务器上获取业务方的包文件:
即RN架构的客户端页面启动时,先从服务器上获取业务方的包文件,需要说明的是,该包文件,可以是拆分后只包括业务代码的业务包,也可以是拆分前包括业务代码以及所依赖的框架代码的全量包。如果是拆分后的包文件,则在该包文件中包括拆分后的标识ID号,否则,没有包括标识ID号。
步骤302:判断所述包文件中是否包括分包的标识信息,如果是,执行步骤303,否则,执行步骤307,其中,步骤307为可选步骤;
该步骤中,在客户端的RN页面启动时,判断所述包文件中是否包括分包的标识信息,即是否包括标识ID号,如果包括,则执行步骤303;进一步,如果不包括,则执行步骤307;
步骤303:初始化内置的基础框架公共包;
该步骤中,如果包文件中包括分包的标识信息,则说明该包文件是拆分后的包文件,且该包文件中只包括业务代码,本地存储有与该业务代码对应的基础框架公共包;否则,说明该包文件不是拆分后的包,且该包文件中包括业务代码以及所依赖的框架代码的全量包。
步骤304:在进入业务方的页面时,加载所述包文件中包括的业务代码业务包;
步骤305:对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;
该步骤中的合并,包括初始化上下文,保证基础框架公共包和业务包在同一运行环境运行,且查找与基础框架公共包对应的业务ID的业务包,然后进行合并。
也就是说,对于基础框架公共包,可以预先在后台初始化JS引擎,将基础公共框架包的内容读取到内存,当进入到某个业务的页面时,加载业务bundle的ID号对于的业务包,然后将基础框架公共包和业务包进行合并。
步骤306:对合并后的所述业务包进行加载,完成页面启动;
该步骤中,通过require方法调用开始应用程序,对合并后的所述业务包进行加载,完成页面启动。
步骤307:在进入业务方的页面时,直接加载所述包文件中包括业务代码以及所依赖的框架代码的全量包,完成页面启动。
该步骤中,如果所述包文件中没有包括分包的标识信息,则说明,包文件是包括业务代码以及所依赖的框架代码的全量包,直接加载即可。
本发明实施例中,在客户端页面启动时,先判断获取的所述包文件中是否包括分包的标识信息,如果包括,则初始化内置的基础框架公共包,在进入业务方的页面时,加载所述包文件中包括业务代码的业务包,对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包,对合并后的所述业务包进行加载,完成页面启动。也就是说,如果所述包文件中包括分包的标识信息,则说明业务代码和基础框架代码分离,基础框架公共包内置在对应的客户端内部,在客户端页面启动时,先初始化内置的基础框架公共包,在进入业务方的页面时,再加载对应的业务包,增加基础框架公共包的复用率,减小下载包的大小,提高了业务包的下载速度以及页面的加载性能。
可选的,在另一实施例中,该实施例在上述实施例的基础上,即在客户端页面启动之前,所述方法还可以包括:
1)将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
2)将每个基础框架公共包作为资源文件内置在客户端内部;
3)将所述多个业务包发送给所述服务器。
需要说明的,该实施例中的步骤1)、2)和3)与上述图2实施例的实现步骤相同,其具体实现过程详见上述图2实施例,在此不再赘述。
可选的,所述将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包包括:接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
可选的,在另一实施例中,该实施例在上述实施例的基础上,在将多个业务包发送给服务器之前,所述方法还可以包括:
将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
为每个业务包标记业务标识;
所述将所述多个业务包发送给服务器包括:将多个标记有业务标识的业务包发送给服务器
需要说明的,该实施例中的步骤上述实施例的实现步骤相同,其具体实现过程详见上述实施例,在此不再赘述。
还请参阅图4,为本发明实施例提供一种分包存储方法的流程图,所述方法包括:
步骤401:接收终端发送的多个业务包,所述多个业务包为所述拆分不同应用程序APP的页面脚本代码后得到的;
该步骤中,服务器接收终端(也可以是客户端)发送的多个业务包businessbundle,也即是说,终端在拆分页面代码包后,将基础框架公共包内置在客户端内部,将多个业务包发送给服务器存储。
步骤402:存储所述多个业务包,以便于页面加载。
服务器存储该多个业务包business bundle,以便于在进入业务方的页面时加载对应的业务代码。
可选的,在另一实施例中,所述方法还可以包括:
接收所述终端发送的获取业务包的请求;
根据所述请求,将所述对应的业务包发送给所述终端。
本发明实施例中,由于服务器只存储了包括业务代码的业务包,节省了存储空间,同时,由于业务包的大小减小了,在为该客户端提供对应的业务包,提高了业务包的下载速度,以及用户体验。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
请参阅图5,为本发明实施例提供的一种页面文件的拆分装置的结构示意图,具体可以包括如下模块:拆分模块51,预置模块52和发送模块53,其中,
拆分模块51,用于将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
预置模块52,用于将所述基础框架公共包作为资源文件内置在客户端内部;
发送模块53,用于将所述多个业务包发送给服务器,以便于在页面启动时加载对应的业务包。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:接收模块和拆分子模块(图中未示),其中,
接收模块,用于接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;
合并模块,用于根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:打包模块和标记模块(图中未示),其中,
打包模块,用于在将多个业务包发送给服务器之前,将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
标记模块,用于为每个业务包标记上业务标识ID;
所述发送模块,具体用于将多个标记有业务标识的业务包发送给服务器。
还请参阅图6,为本发明实施例提供一种页面启动装置的结构示意图,所述装置包括:获取模块60,判断模块61,初始化模块62,第一加载模块63,合并模块64和第二加载模块65,其中,
启动模块60,用于在客户端页面启动时,从服务器上获取业务方的包文件;
判断模块61,用于判断所述包文件中是否包括分包的标识信息;
初始化模块62,用于在所述判断模块61判断所述包文件中包括分包的标识信息时,初始化内置的基础框架公共包;
第一加载模块63,用于在进入业务方的页面时,加载所述包文件中包括业务代码的业务包;
合并模块64,用于对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;
第二加载模块65,用于对合并后的所述业务包进行加载,完成页面启动。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:第三加载模块(图中未示),其中,
第三加载模块,用于在判断模块判断所述包文件中没有包括分包的标识信息,在进入业务方的页面时,直接加载所述包文件中包括业务代码以及所依赖的框架代码的全量包,完成页面启动。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:拆分模块,预置模块和发送模块(图中未示),其中,
拆分模块,用于在客户端页面启动之前,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
预置模块,用于将每个基础框架公共包作为资源文件内置在客户端内部;
发送模块,用于将所述多个业务包发送给所述服务器。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述拆分模块包括:接收模块和拆分子模块,其中,
接收模块,用于接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;
拆分子模块,用于根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:打包模块和标记模块(图中未示),其中,
打包模块,用于在将多个业务包发送给服务器之前,将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
标记模块,用于为每个业务包标记上业务标识;
所述发送模块,具体用于将多个标记有业务标识的业务包发送给服务器。
还请参阅图7,为本发明实施例提供的一种页面代码包加载装置的结构示意图如,所述装置包括:第一接收模块71和存储模块72,其中,
第一接收模块71,用于接收终端发送的多个业务包,所述多个业务包为所述拆分不同页面脚本代码后得到的;
存储模块72,用于存储所述多个业务包,以便于页面加载。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:第二接收模块和发送模块(图中未示),其中,
第二接收模块,用于接收所述终端发送的获取业务包的请求;
发送模块,用于根据所述请求,将所述对应的业务包发送给所述终端。
还请参阅图8,为本发明实施例提供的一种包文件存储的系统结构示意图,所述系统包括移动终端81和服务器82,其中,所述移动终端81的客户端上存储有基础框架公共包,而服务器82上存储有业务包1和业务包2,为了便于描述,该服务器82上以存储有两个业务包为例,但在实际应用中,并不限于此。
其中,移动终端将该bundle文件拆分成一个基础框架公共包(包括RN框架代码)和多个业务包,每个业务包都是按照业务方代码打包成一个单独的业务包(本实施例以业务包1和业务包2为例)。之后,移动终端81将所述基础框架公共包作为资源文件内置在移动终端81的客户端内部,以及将多个业务包发送给所述服务器82,由服务器82存储该多个业务包(即业务包1和业务包2为例)。
其中,该实施例中的拆包和打包过程详见上述实施例中对应的描述,在此不再赘述。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例中,将公共框架代码和多个业务代码进行拆分,实现业务代码和公共框架代码的分离,并将公共框架代码内置在APP内部,各个业务方只上传业务代码包到服务器端,以便于在页面启动时,只下载业务代码包,从而减小下载包的大小,提高页面加载速度与性能。
可选的,本发明实施例还提供一种终端,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述页面文件的拆分方法或者上述的页面启动方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
可选的,本发明实施例还提供一种服务器,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述分包存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述页面文件的拆分方法实施例或者页面启动方法实施例或者分包存储方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所述权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种页面代码包的拆分方法、页面启动方法、页面加载方法、装置、终端、服务器及计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种页面启动方法,其特征在于,包括:
在客户端页面启动时,从服务器上获取业务方的包文件;
判断所述包文件中是否包括分包的标识信息;
如果包括分包的标识信息,则初始化内置的基础框架公共包;
在进入业务方的页面时,加载所述包文件中包括业务代码的业务包;
对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;
对合并后的所述业务包进行加载,完成页面启动。
2.根据权利要求1所述的方法,其特征在于,在客户端页面启动之前,所述方法还包括:
将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
将所述基础框架公共包作为资源文件内置在客户端内部;
将所述多个业务包发送给所述服务器。
3.根据权利要求2所述的方法,其特征在于,所述将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包包括:
接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;
根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
4.根据权利要求3所述的方法,其特征在于,在将多个业务包发送给服务器之前,还包括:
将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
为每个业务包标记业务标识;
所述将所述多个业务包发送给服务器包括:将多个标记有业务标识的业务包发送给服务器。
5.一种页面启动装置,其特征在于,包括:
获取模块,用于在客户端页面启动时,从服务器上获取业务方的包文件;
判断模块,用于判断所述包文件中是否包括分包的标识信息;
初始化模块,用于在所述判断模块判断所述包文件中包括分包的标识信息时,初始化内置的基础框架公共包;
第一加载模块,用于在进入业务方的页面时,加载所述包文件中包括业务代码的业务包;
合并模块,用于对所述基础框架公共包和所述业务包进行合并,得到合并后的业务包;
第二加载模块,用于对合并后的所述业务包进行加载,完成页面启动。
6.根据权利要求5所述的装置,其特征在于,还包括:
拆分模块,用于在客户端页面启动之前,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包;
预置模块,用于将每个基础框架公共包作为资源文件内置在客户端内部;
发送模块,用于将所述多个业务包发送给所述服务器。
7.根据权利要求6所述的装置,其特征在于,所述拆分模块包括:
接收模块,用于接收用户输入的打包命令,所述打包命令为按照打包脚本代码改写框架分包形式的打包命令;
拆分子模块,用于根据所述打包命令,将页面脚本代码包文件拆分成一个基础框架公共包和多个业务包。
8.根据权利要求7所述的装置,其特征在于,还包括:
打包模块,用于在将多个业务包发送给服务器之前,将所述多个业务包中每个业务包按照业务方代码打包成一个单独的业务包;
标记模块,用于为每个业务包标记上业务标识;
所述发送模块,具体用于将多个标记有业务标识的业务包发送给服务器。
9.一种终端,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4任一项所述页面文件的拆分方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任何一项所述的页面文件的拆分方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811482874.XA CN109783744A (zh) | 2018-12-05 | 2018-12-05 | 页面启动方法、装置、终端及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811482874.XA CN109783744A (zh) | 2018-12-05 | 2018-12-05 | 页面启动方法、装置、终端及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783744A true CN109783744A (zh) | 2019-05-21 |
Family
ID=66496805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811482874.XA Pending CN109783744A (zh) | 2018-12-05 | 2018-12-05 | 页面启动方法、装置、终端及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783744A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442399A (zh) * | 2019-08-09 | 2019-11-12 | 广州小鹏汽车科技有限公司 | 应用的React Native业务执行方法、装置、存储介质及终端设备 |
CN110502251A (zh) * | 2019-08-16 | 2019-11-26 | 珠海天燕科技有限公司 | 应用安装方法及装置 |
CN110795143A (zh) * | 2019-10-22 | 2020-02-14 | 中国工商银行股份有限公司 | 用于处理功能模块的方法、装置、计算设备以及介质 |
CN110941429A (zh) * | 2019-10-23 | 2020-03-31 | 东软集团股份有限公司 | 一种网页的业务脚本处理方法、装置及设备 |
CN111796878A (zh) * | 2020-06-05 | 2020-10-20 | 北京沃东天骏信息技术有限公司 | 一种应用于单页应用的资源拆分、加载方法和装置 |
CN112035095A (zh) * | 2019-06-03 | 2020-12-04 | 北京沃东天骏信息技术有限公司 | 应用处理方法、应用处理装置、计算机设备和介质 |
CN112416458A (zh) * | 2020-11-20 | 2021-02-26 | 平安普惠企业管理有限公司 | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 |
CN112732249A (zh) * | 2021-01-07 | 2021-04-30 | 北京字节跳动网络技术有限公司 | 代码处理方法、装置、系统、设备及介质 |
CN112905328A (zh) * | 2021-03-04 | 2021-06-04 | 杭州海康威视数字技术股份有限公司 | 任务处理方法、装置及计算机可读存储介质 |
CN113254043A (zh) * | 2021-06-04 | 2021-08-13 | 京东科技控股股份有限公司 | Web前端项目处理方法、装置、电子设备及存储介质 |
CN114356434A (zh) * | 2021-11-26 | 2022-04-15 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN114443169A (zh) * | 2022-01-28 | 2022-05-06 | 中国民生银行股份有限公司 | 一种实现技术组件平台化的方法及装置 |
CN110321504B (zh) * | 2019-06-18 | 2023-09-22 | 平安医疗健康管理股份有限公司 | 一种页面处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919378A (zh) * | 2016-08-24 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 基于增量的应用更新和测试方法及系统、服务器及客户端 |
CN107124446A (zh) * | 2017-04-01 | 2017-09-01 | 北京五八信息技术有限公司 | 应用程序下载方法、服务器及终端 |
CN107168730A (zh) * | 2017-04-14 | 2017-09-15 | 北京五八信息技术有限公司 | 应用程序加载方法、服务器及终端 |
CN108132809A (zh) * | 2017-11-29 | 2018-06-08 | 五八有限公司 | 加载的方法、装置、终端及存储介质 |
-
2018
- 2018-12-05 CN CN201811482874.XA patent/CN109783744A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106919378A (zh) * | 2016-08-24 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 基于增量的应用更新和测试方法及系统、服务器及客户端 |
CN107124446A (zh) * | 2017-04-01 | 2017-09-01 | 北京五八信息技术有限公司 | 应用程序下载方法、服务器及终端 |
CN107168730A (zh) * | 2017-04-14 | 2017-09-15 | 北京五八信息技术有限公司 | 应用程序加载方法、服务器及终端 |
CN108132809A (zh) * | 2017-11-29 | 2018-06-08 | 五八有限公司 | 加载的方法、装置、终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
哪吒闹海全靠浪: "RN的bundle拆分与合并之安卓篇", 《HTTPS://WWW.JIANSHU.COM/P/AFC1217A53AA》 * |
徐子龙: "从RN看第三方包依赖管理", 《HTTP://WWW.VOIDCN.COM/ARTICLE/P-GSHZNCTC-BNM.HTML》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035095A (zh) * | 2019-06-03 | 2020-12-04 | 北京沃东天骏信息技术有限公司 | 应用处理方法、应用处理装置、计算机设备和介质 |
CN110321504B (zh) * | 2019-06-18 | 2023-09-22 | 平安医疗健康管理股份有限公司 | 一种页面处理方法及装置 |
CN110442399A (zh) * | 2019-08-09 | 2019-11-12 | 广州小鹏汽车科技有限公司 | 应用的React Native业务执行方法、装置、存储介质及终端设备 |
CN110502251B (zh) * | 2019-08-16 | 2023-03-24 | 郑州阿帕斯科技有限公司 | 应用安装方法及装置 |
CN110502251A (zh) * | 2019-08-16 | 2019-11-26 | 珠海天燕科技有限公司 | 应用安装方法及装置 |
CN110795143A (zh) * | 2019-10-22 | 2020-02-14 | 中国工商银行股份有限公司 | 用于处理功能模块的方法、装置、计算设备以及介质 |
CN110795143B (zh) * | 2019-10-22 | 2023-11-07 | 中国工商银行股份有限公司 | 用于处理功能模块的方法、装置、计算设备以及介质 |
CN110941429A (zh) * | 2019-10-23 | 2020-03-31 | 东软集团股份有限公司 | 一种网页的业务脚本处理方法、装置及设备 |
CN110941429B (zh) * | 2019-10-23 | 2023-03-31 | 东软集团股份有限公司 | 一种网页的业务脚本处理方法、装置及设备 |
CN111796878A (zh) * | 2020-06-05 | 2020-10-20 | 北京沃东天骏信息技术有限公司 | 一种应用于单页应用的资源拆分、加载方法和装置 |
CN111796878B (zh) * | 2020-06-05 | 2024-04-12 | 北京沃东天骏信息技术有限公司 | 一种应用于单页应用的资源拆分、加载方法和装置 |
CN112416458A (zh) * | 2020-11-20 | 2021-02-26 | 平安普惠企业管理有限公司 | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 |
CN112732249A (zh) * | 2021-01-07 | 2021-04-30 | 北京字节跳动网络技术有限公司 | 代码处理方法、装置、系统、设备及介质 |
CN112905328A (zh) * | 2021-03-04 | 2021-06-04 | 杭州海康威视数字技术股份有限公司 | 任务处理方法、装置及计算机可读存储介质 |
CN112905328B (zh) * | 2021-03-04 | 2023-09-19 | 杭州海康威视数字技术股份有限公司 | 任务处理方法、装置及计算机可读存储介质 |
CN113254043A (zh) * | 2021-06-04 | 2021-08-13 | 京东科技控股股份有限公司 | Web前端项目处理方法、装置、电子设备及存储介质 |
CN114356434A (zh) * | 2021-11-26 | 2022-04-15 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN114356434B (zh) * | 2021-11-26 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN114443169A (zh) * | 2022-01-28 | 2022-05-06 | 中国民生银行股份有限公司 | 一种实现技术组件平台化的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783744A (zh) | 页面启动方法、装置、终端及计算机可读存储介质 | |
CN109547570B (zh) | 服务注册方法、装置、注册中心管理设备及存储介质 | |
CN110011952B (zh) | 一种数据传输的方法、服务集群及客户端 | |
CN111722885B (zh) | 程序运行方法、装置以及电子设备 | |
CN111930382B (zh) | 应用页面的接入方法、装置及设备 | |
CN107528718A (zh) | 获取资源的方法、装置和系统 | |
CN112988608B (zh) | 数据测试方法、装置、计算机设备及存储介质 | |
CN109032881A (zh) | 一种日志级别动态调整方法及装置 | |
CN112416458A (zh) | 基于ReactNative的预加载方法、装置、计算机设备及存储介质 | |
CN108021564A (zh) | 一种页面重定向的方法和设备 | |
CN109688472A (zh) | 电视系统升级方法、装置、设备及存储介质 | |
CN110716786B (zh) | 一种页面展示方法、系统及存储介质 | |
CN112769706A (zh) | 组件化路由方法及系统 | |
CN109213533A (zh) | 一种广告sdk动态加载方法、装置及终端 | |
CN112241298A (zh) | 页面显示方法及装置、存储介质、电子装置 | |
CN113821226A (zh) | 一种onie系统安装方法、装置、设备及介质 | |
CN113608800A (zh) | 项目启动方法、装置、电子设备及存储介质 | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN110221855B (zh) | 一种app与服务器协同更新和离线运行的方法 | |
CN113157274B (zh) | 基于微前端的软件开发方法、装置、电子设备及存储介质 | |
CN112732277B (zh) | 一种java多服务应用自动安装部署的集成方法与系统 | |
CN115328526A (zh) | 一种依赖包的更新方法、装置、设备及存储介质 | |
CN113391813A (zh) | 程序编译方法和装置、存储介质及电子设备 | |
CN112631638A (zh) | 终端应用更新方法、装置、存储介质及电子设备 | |
CN110007937B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |
|
RJ01 | Rejection of invention patent application after publication |