CN114356434B - 页面加载方法、设备、装置、存储介质及程序产品 - Google Patents
页面加载方法、设备、装置、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114356434B CN114356434B CN202111423965.8A CN202111423965A CN114356434B CN 114356434 B CN114356434 B CN 114356434B CN 202111423965 A CN202111423965 A CN 202111423965A CN 114356434 B CN114356434 B CN 114356434B
- Authority
- CN
- China
- Prior art keywords
- page
- stack
- file
- target
- file package
- 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 79
- 230000005856 abnormality Effects 0.000 claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000002159 abnormal effect Effects 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000004590 computer program Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 13
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 78
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本申请提出一种页面加载方法、设备、装置、存储介质及程序产品。在本申请实施例中,在对页面对应的不同文件包加载过程中,可以将各文件包对应类型的标识信息添加到页面对应的堆栈中。基于此,在监控到页面发生异常的情况下,可以从堆栈返回的堆栈信息中识别发生异常的页面对应的标识信息,以根据该标识信息确定发生异常的文件所属的文件包类型。进一步,基于堆栈返回的堆栈信息和确定的文件包类型,可以在文件包对应的源文件中快速、准确的定位引起异常的程序代码位置,有助于开发人员分析造成异常的原因及解决异常。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种页面加载方法、设备、装置、存储介质及程序产品。
背景技术
React Native(简称RN)是一款开源的跨平台移动应用开发框架,使用JavaScript(简称JS)语言来开发移动应用,支持iOS和Android两大平台。以在RN框架下使用Android开发移动应用程序为例,当开发人员编写好Android程序后,RN框架会把JS程序打包后的JsBundle文件进行加载。随着业务增加,JsBundle文件的体积会越来越大,特别是在多模块场景下,JsBundle文件的数量会更多,给程序文件的加载效率造成很大影响。因此,根据不同的业务需求对JsBundle文件进行拆包,成为集成RN时必须考虑的问题。
在现有方案中,在集成RN框架时可以根据业务需求将JsBundle文件拆分成对应不同业务需求的基础包和业务包,其中,基础包中包含有业务包运行所需的基础环境信息,需要在业务包加载之前被加载,在业务包均也被加载的情况下,可以实现应用程序对应的功能。在应用程序运行过程中可能发生JS异常,为了快速、准确定位异常原因,有必要识别异常是基础包和业务包中哪种类型的文件包引起的,但是现有方案中,JS引擎无法快速、准确的区分是基础包还是业务包发生JS异常。
发明内容
本申请提供一种页面加载方法、设备、装置、存储介质及程序产品,用于在加载不同类型的文件包时向页面对应的堆栈中添加与文件包类型对应的标识信息,以在页面发生异常的情况下,根据标识信息快速、准确的定位引起异常的文件包类型。
本申请实施例提供一种页面加载方法,包括:响应于页面加载请求,获取待加载页面对应的基础文件包和业务文件包,并创建所述待加载页面对应的堆栈;加载所述基础文件包,在成功加载所述基础文件包的情况下,加载所述业务文件包,并在所述堆栈中记录页面加载对应的堆栈信息,所述堆栈信息中包括所述基础文件包和业务文件包分别对应的标识信息;在所述页面运行过程中,监控所述页面是否发生异常;在监控到发生异常的情况下,获取所述堆栈返回的与所述异常对应的目标堆栈信息;识别所述目标堆栈信息中的目标标识信息,根据所述目标标识信息确定引起所述异常的文件包类型。
在一可选实施例中,在响应于页面加载请求之前,所述方法还包括:获取所述待加载页面对应的多个源文件,对所述多个源文件进行拆分并压缩得到文件包,所述文件包包括基础文件包和业务文件包,为所述基础文件包和业务文件包创建不同的标识信息。
在一可选实施例中,所述标识信息包括所述基础文件包和所述业务文件包分别对应的名称以及版本号。
在一可选实施例中,所述堆栈信息以预设格式记录在所述堆栈中,则识别所述目标堆栈信息中的目标标识信息,包括:利用与所述预设格式适配的正则表达式,识别所述目标堆栈信息中的堆栈的标识符、目标标识信息以及引起所述异常的代码行列号。
在一可选实施例中,所述方法还包括:根据所述目标标识信息中堆栈的标识符,确定引起页面加载异常的目标源文件;以及根据所述目标堆栈信息中引起所述异常的代码行列号,在所述目标源文件中定位引起所述异常的程序代码位置。
在一可选实施例中,根据所述目标堆栈信息中引起所述异常的代码行列号,在所述目标源文件中定位引起所述异常的程序代码位置,包括:根据所述目标堆栈信息中引起所述异常的代码行列号以及文件包与源文件之间的内容对应的位置映射关系,在所述目标源文件中定位引起所述异常的程序代码位置。
本申请实施例还提供一种计算机设备,包括:处理器以及存储有计算机程序的存储器;所述处理器,用于执行所述计算机程序,以用于:响应于页面加载请求,获取待加载页面对应的基础文件包和业务文件包,并创建所述待加载页面对应的堆栈;加载所述基础文件包,在成功加载所述基础文件包的情况下,加载所述业务文件包,并在所述堆栈中记录页面加载对应的堆栈信息,所述堆栈信息中包括所述基础文件包和业务文件包分别对应的标识信息;在页面运行过程中,监控所述页面是否发生异常;在监控到发生异常的情况下,获取堆栈返回的与所述异常对应的目标堆栈信息;识别所述目标堆栈信息中的目标标识信息,并根据所述目标标识信息确定引起所述异常的文件包类型。
在一可选实施例中,所述处理器还用于:根据所述目标堆栈信息中的目标标识信息,确定引起页面加载异常的目标源文件,并在所述目标源文件中定位引起所述异常的程序代码位置。
本申请实施例还提供一种数据处理装置,包括:数据获取模块、数据处理模块和监控模块;所述数据获取模块,在响应到页面加载请求的情况下,用于获取待加载页面对应的基础文件包和业务文件包,并创建所述待加载页面对应的堆栈;所述数据处理模块,用于加载所述基础文件包,在成功加载所述基础文件包的情况下,加载所述业务文件包,并在所述堆栈中记录页面加载对应的堆栈信息,所述堆栈信息中包括所述基础文件包和业务文件包分别对应的标识信息;所述监控模块,用于在页面运行过程中,监控所述页面是否发生异常;在监控到发生异常的情况下,获取堆栈返回的与所述异常对应的目标堆栈信息;以及识别所述目标堆栈信息中的目标标识信息,并根据所述目标标识信息确定引起所述异常的文件包类型。
本申请实施例还提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够实现所述页面加载方法和所述异常定位方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现所述页面加载方法和所述异常定位方法。
在本申请实施例中,在对页面对应的不同文件包加载过程中,可以将各文件包对应类型的标识信息添加到页面对应的堆栈中。基于此,在监控到页面发生异常的情况下,可以从堆栈返回的堆栈信息中识别发生异常的页面对应的标识信息,以根据该标识信息确定发生异常的文件所属的文件包类型。进一步,基于堆栈返回的堆栈信息和确定的文件包类型,可以在文件包对应的源文件中快速、准确的定位引起异常的程序代码位置,有助于开发人员分析造成异常的原因及解决异常。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1a是本申请实施例提供的一种页面加载方法的流程图;
图1b是本申请实施例提供的一种页面加载阶段到异常定位阶段的整体流程图;
图2是本申请实施例提供的一种计算机设备的结构示意图;
图3为本申请实施例提供的一种数据处理装置的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。
在使用移动应用开发框架(React Native,RN)开发移动应用过程中,为了简化应用程序文件的结构以及提升应用程序的加载效率,通常对应用程序对应的源文件进行拆分,将源文件拆分成不同业务需求下的基础文件和业务文件,并对拆分后的文件进行压缩,得到压缩后的基础文件包和业务文件包以及压缩后的文件包与源文件的映射文件(SourceMap);其中,RN框架加载的是压缩后的文件包,SourceMap中存储的是源文件的内容在压缩前后的位置映射关系。在应用程序在加载或运行过程中,若发生异常,页面引擎可以捕获到对应的异常信息,开发人员在定位异常原因时,可以基于捕获到的异常信息和SourceMap中的位置映射关系,在发生异常的页面对应的源文件中确定引起异常的程序代码位置。
然而,在现有方案中,RN框架在对文件包进行加载时并没有对基础文件包和业务文件包进行区分,在发生异常的情况下,页面引擎无法根据捕获的异常信息区分引起异常的文件所属的文件包类型,这给开发人员定位异常原因时造成了更多的负担。为了解决现有方案中的问题,本申请实施例从页面加载和异常定位两个方面,提供了一种页面加载方法,用以在加载页面对应的基础文件包和业务文件包时,向页面对应的堆栈中添加对应类型的标识信息,并在发生异常的情况下,根据加载时添加的标识信息确定引起异常的文件包类型,以快速、准确的定位引起异常的原因。
下面分别对本申请实施例提供的页面加载方法进行说明。
图1a为本申请实施例提供的页面加载方法,如图1a所示,方法包括:
S1a、响应于页面加载请求,获取待加载页面对应的基础文件包和业务文件包,并创建待加载页面对应的堆栈;
S2a、加载基础文件包,在成功加载基础文件包的情况下,加载业务文件包,并在堆栈中记录页面加载对应的堆栈信息,堆栈信息中包括基础文件包和业务文件包分别对应的标识信息;
S3a、在页面运行过程中,监控页面是否发生异常;
S4a、在监控到发生异常的情况下,获取堆栈返回的与异常对应的目标堆栈信息;
S5a、识别目标堆栈信息中的目标标识信息,根据目标标识信息确定引起异常的文件包类型。
在本申请实施例中,页面引擎在响应到用户触发的页面加载操作的情况下,可以确定待加载页面对应的基础文件包和业务文件包,并在成功加载基础文件包的情况下,加载业务文件包。其中,基础文件包中包括实现业务功能的公共功能或基本信息,优先加载基础文件包是为了构建业务文件包所需的运行环境,以在加载业务文件包时渲染用户触发的页面,并在浏览器中向用户呈现渲染后的页面效果,供用户浏览或者执行其他操作。在加载页面时,内存中会建立与加载的页面对应的堆栈,该堆栈用于记录页面在加载及运行过程中对应的堆栈信息,在本申请可选实施例中,在创建堆栈时可以为其设置默认的存储行数,例如20行、30行、50等等,在此不做限定。
进一步,在确定待加载页面对应的基础文件包和业务文件包的情况下,还可以获取基础文件包和业务文件包分别对应的标识信息,并在加载页面时将获取到的标识信息分别添加到页面对应的堆栈中,以在页面发生异常的情况下,根据堆栈中的标识信息确定引起异常的文件包类型。
在本申请实施例中,在响应页面加载请求之前,还可以获取待加载页面对应的多个源文件,根据各源文件的类型对多个源文件进行拆分得到基础文件和业务文件,以及对拆分后的文件按照类型进行压缩得到可被RN框架加载的基础文件包和业务文件包。进一步,为了对不同类型的文件包进行区分,在本申请实施例中,可对基础文件包和业务文件包分别创建不同的标识信息,以在加载各文件包时将对应的标识信息添加到被加载的页面对应的堆栈中。在本申请实施例中,不限定基础文件包和业务文件包的标识信息对应的具体形式,可选地,可以是基础文件包和业务文件包分别对应的名称以及版本号,当然也可以是根据文件包类型创建的其他形式的标识信息,只要能够起到区分作用均适用于本申请实施例。
在页面加载以及运行过程中,很有可能因为某些原因出现异常,例如,页面中的代码编写错误、访问的页面丢失、网络异常或者用户的误操作等等,都会造成无法成功访问目标页面。为了对异常进行处理,页面引擎提供有异常处理机制,用于监控在页面加载及运行过程中是否发生异常,并在监控到发生异常的情况下,捕获对应的异常信息并将异常信息抛出,以供用户感知操作结果,以及供服务器获取并根据异常信息对异常进行处理。例如,在用户访问页面时,若用户访问的地址错误,可以在页面中向用户输出类似“访问的地址不存在”等内容,基于此,用户根据提示信息可进行正确的访问;服务器在获取到异常处理机制抛出的异常信息的情况下,可以确定地址访问错误的原因,例如,确定是用户输入的地址错误还是在用户输入正确地址的情况下,对应的目标地址丢失等。
可选地,在页面加载及运行过程中,页面引擎可以监控页面是否发生语法错误(SyntaxError)、类型错误(TypeError)、访问地址错误(URIError)、引用错误(ReferenceError)、范围错误(RangeError)、Eval错误(EvalError)中的任一种或多种异常,并在监控到页面发生异常的情况下,获取发生异常的页面对应的堆栈返回的的堆栈信息。在该堆栈信息中至少包括堆栈的标识符、发生异常的位置、异常的类型以及在页面被加载时添加到堆栈中的文件包对应的标识信息。
需要说明的是,在本申请实施例中,不限定向堆栈中添加文件包的标识信息的方式,可选地,可以在加载页面时将页面所属的文件包对应的标识信息添加到堆栈中;也可以在监控到页面发生异常的情况下,将页面所属的文件包的标识信息添加到堆栈中,并在抛出堆栈信息时一并抛出;当然,也可以是其他方式,可根据具体的需求设定。
进一步,在获取到页面引擎抛出的堆栈信息的情况下,可以对堆栈信息进行识别,获取堆栈的标识符和引起异常的代码行列号,根据目标标识信息中堆栈的标识符,可以确定引起页面加载异常的目标源文件;根据目标堆栈信息中引起所述异常的代码行列号,可以在目标源文件中定位引起所述异常的程序代码位置。
在本申请实施例中,不限定堆栈信息的具体形式,可选地,堆栈信息可以以预设格式记录在堆栈中,例如预设格式可以为“堆栈标识符@文件包的名称_文件包的版本号:行号:列号”;其中,行号和列号分别表示发生异常的位置在发生异常的页面程序代码中对应的行号和列号。则在识别目标堆栈信息中的目标标识信息时,可以利用与预设格式适配的正则表达式,识别目标堆栈信息中堆栈的标识符、目标标识信息以及引起异常的程序代码行号和列号,以根据识别到的信息定位异常位置。
例如,假设获取到的堆栈信息为“aT@testBundle123_111:2:666”,则可以利用“/(?<=@)[A-Za-z]+[0-9]+/g”正则表达式来识别堆栈的标识符或文件包的名称,以及利用“/(?!<=@)[0-9]+:[0-9]+\n/g”正则表达式来识别文件包的版本号或异常发生的行号和列号。基于此,识别到的堆栈信息的结果为:堆栈的标识符为aT、文件包的名称为testBundle123、文件包的版本号为111、发生异常的程序代码行号为2、列号为666。
在本申请实施例中,由于在对源文件进行拆分和压缩处理时还会得到包含有文件包与源文件的内容位置映射关系的SourceMap,其在存储时与文件包的类型具有对应关系。基于此,根据识别到的文件包的名称和版本号不仅可以确定目标文件包的类型,还可以找到与目标文件包对应的目标SourceMap。进一步,在定位引起异常的程序代码位置时,可以根据识别到的堆栈的标识符确定与发生异常的页面对应的目标源文件,以及根据识别到的行号和列号、目标SourceMap中的文件包与源文件之间的内容对应的位置映射关系,在目标源文件中确定引起异常的程序代码位置。
以上述实施例中的堆栈信息为例,假设testBundle123_111代表基础文件包,则在识别到堆栈信息中的文件包名称和版本号的情况下,可以确定发生异常的页面所属的文件包类型为基础文件包;进一步,可以在源文件中查询与识别到的堆栈标识符aT对应的目标源文件,以及根据文件包类型testBundle123_111查询对应的目标SourceMap,该目标SourceMap存储有目标源文件的内容在压缩前后的位置映射关系。基于此,根据该位置映射关系,可以在目标SoruceMap中定位与识别到行号2和列号为666对应的目标行号和目标列号,该目标行号和目标列号为目标源文件的程序代码中的行号和列号,例如,根据位置映射关系确定与行号2对应的目标行号为12,与列号为666对应的目标列号为928,则开发人员可以将目标源文件的程序代码中12行928列的位置定位为异常位置,并基于此位置做进一步的异常分析和处理。
在本申请实施例中,不限定识别堆栈信息以及根据堆栈信息定位异常位置的方式,在一可选实施例中,在获取到堆栈返回的堆栈信息的情况下,可以直接对堆栈信息进行识别,并按照上述实施例中的方式定位目标源文件中异常发生的位置;在另一可选实施例中,在获取到堆栈返回的堆栈信息的情况下,还可以将堆栈信息提供给对堆栈信息具有识别功能的其他系统进行识别,并由该系统对发生异常位置进行定位。进一步,在确定异常发生位置的情况下,可将确定的结果信息进行输出,以供开发人员根据异常发生位置对目标源文件进行分析和处理,解决造成异常发生的原因。
基于上述实施例的内容,下面对本申请实施例在页面加载阶段以及异常定位阶段对实现上述方法的整体流程进行示例性说明。
图1b为页面从加载到异常定位的整体流程图,如图1b所述,在用户对待加载页面触发加载操作的情况下,页面引擎可响应到该加载操作,并获取待加载页面对应的基础文件包和业务文件包;进一步,在获取到待加载页面对应的基础文件包和业务文件包的情况下,还可以将基础文件包和业务文件包的标识信息分别添加到待加载页面对应的堆栈中,并对基础文件包和业务文件包依次进行加载;在页面成功加载的情况下,页面引擎可以实时监测页面的运行状态,并判断页面是否发生异常;在确定页面发生异常的情况下,捕获堆栈抛出的与异常对应的堆栈信息;基于此,可对堆栈信息进行识别,得到发生异常的页面所属的文件包对应的标识信息和其他信息;进一步,根据标识信息可确定发生异常的页面所属的文件包类型,结合其他信息可确定发生异常的页面对应的目标源文件,以及在目标源文件中引起异常的程序代码位置;基于此,开发人员可对确定的位置进行分析和处理。
在本申请实施例中,在对页面对应的不同文件包加载过程中,可以将各文件包对应类型的标识信息添加到页面对应的堆栈中。基于此,在监控到页面发生异常的情况下,可以从异常处理机制返回的堆栈信息中识别发生异常的页面对应的标识信息,以及用于定位目标源文件的其他信息。进一步,不仅可以根据标识信息确定发生异常的文件所属的文件包类型,还可以堆栈返回的其他信息确定发生异常的页面对应的目标源文件以及在目标源文件中发生异常的程序代码位置。通过这种方式,可以快速、准确的定位引起异常的程序代码位置,有助于开发人员分析造成异常的原因及解决异常,减轻开发人员的负担。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤S1a至步骤S5a的执行主体可以为设备A;又比如,步骤S1a和步骤S2a的执行主体可以为设备A,步骤S3a至步骤S5a的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S1a、S2a等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本申请实施例还提供了一种计算机设备,图2为本申请实施例的处理器使用计算机设备的结构示意图,如图2所示,计算机设备包括:处理器21以及存储有计算机程序的存储器22。其中,处理器21和存储器22可以是一个或多个。
存储器22,主要用于存储计算机程序,这些计算机程序可被处理器执行,致使处理器控制处理器21使用计算机设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器还可被配置为存储其它各种数据以支持在处理器21使用计算机设备上的操作,这些数据的示例包括用于在处理器21使用计算机设备上操作的任何应用程序或方法的指令。
存储器22,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,并不限定处理器21的实现形态,例如可以是但不限于CPU、GPU或MCU等。处理器21可以看作是计算机设备的控制单元,可用于执行存储器22中存储的计算机程序,以控制计算机设备实现相应功能、完成相应动作或任务。值得说明的是,根据计算机设备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器22中存储的计算机程序也会有所不同,而处理器21执行不同计算机程序可控制计算机设备实现不同的功能、完成不同的动作或任务。
在一些可选实施例中,如图2所示,计算机设备还可以包括:通信组件23、显示器24以及电源组件25等其它组件。图2中仅示意性给出部分组件,并不意味着计算机设备只包括图2所示组件,针对不同的应用需求,计算机设备还可以包括其他组件,具体可视计算机设备的产品形态而定。
在本申请实施例中,不限定计算机设备的使用场景和实现形态,在不同的使用场景中,计算机设备的实现形态也可能不同。例如,在物联网场景中,以车辆使用场景为例,计算机设备可以为车载设备中的一种;又例如,在互联网或其他场景中,计算机设备可以为单独的计算机设备或云端服务器等等,在此不做限定。
在本申请实施例中,当处理器21执行存储器22中的计算机程序时,以用于实现上述用户数据展示方法中的各步骤。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由计算机设备执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时实现上述方法实施例中的各步骤。
本申请实施例还提供一种数据处理装置。例如该处理装置可实现为通信控制器(Communication Control Unit,CCU)中的虚拟装置,例如应用程序。如图3所示,该数据处理装置包括数据获取模块301、数据处理模块302和监控模块303;数据获取模块301在响应到页面加载请求的情况下,用于获取待加载页面对应的基础文件包和业务文件包,并创建待加载页面对应的堆栈;数据处理模块302用于加载基础文件包,在成功加载基础文件包的情况下,加载业务文件包,并在堆栈中记录页面加载对应的堆栈信息,堆栈信息中包括基础文件包和业务文件包分别对应的标识信息;监控模块303用于在页面运行过程中,监控页面是否发生异常;在监控到发生异常的情况下,获取堆栈返回的与异常对应的目标堆栈信息;以及识别目标堆栈信息中的目标标识信息,并根据目标标识信息确定引起异常的文件包类型。需要说明的是,关于上述计算机设备的处理器和数据处理装置的各模块执行操作的具体方式已经在有关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
上述实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述实施例中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种页面加载方法,其特征在于,包括:
获取待加载页面对应的多个源文件,对所述多个源文件进行拆分并压缩得到与源文件的内容位置具有映射关系的文件包,所述文件包包括基础文件包和业务文件包,为所述基础文件包和业务文件包创建不同的标识信息;
响应于页面加载请求,获取待加载页面对应的基础文件包和业务文件包,并创建所述待加载页面对应的堆栈;
加载所述基础文件包,在成功加载所述基础文件包的情况下,加载所述业务文件包,并在所述堆栈中记录页面加载对应的堆栈信息,所述堆栈信息中包括所述基础文件包和业务文件包分别对应的标识信息;
在所述页面运行过程中,监控所述页面是否发生异常;
在监控到发生异常的情况下,获取所述堆栈返回的与所述异常对应的目标堆栈信息;
识别所述目标堆栈信息中的目标标识信息,根据所述目标标识信息确定引起所述异常的文件包类型。
2.根据权利要求1所述的方法,其特征在于,所述标识信息包括所述基础文件包和所述业务文件包分别对应的名称以及版本号。
3.根据权利要求2所述的方法,其特征在于,所述堆栈信息以预设格式记录在所述堆栈中,则识别所述目标堆栈信息中的目标标识信息,包括:
利用与所述预设格式适配的正则表达式,识别所述目标堆栈信息中的堆栈的标识符、目标标识信息以及引起所述异常的代码行列号。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述目标标识信息中堆栈的标识符,确定引起页面加载异常的目标源文件;以及
根据所述目标堆栈信息中引起所述异常的代码行列号,在所述目标源文件中定位引起所述异常的程序代码位置。
5.根据权利要求4所述的方法,其特征在于,根据所述目标堆栈信息中引起所述异常的代码行列号,在所述目标源文件中定位引起所述异常的程序代码位置,包括:
根据所述目标堆栈信息中引起所述异常的代码行列号以及文件包与源文件之间的内容对应的位置映射关系,在所述目标源文件中定位引起所述异常的程序代码位置。
6.一种计算机设备,其特征在于,包括:处理器以及存储有计算机程序的存储器;
所述处理器,用于执行所述计算机程序,以用于:
获取待加载页面对应的多个源文件,对所述多个源文件进行拆分并压缩得到与源文件的内容位置具有映射关系的文件包,所述文件包包括基础文件包和业务文件包,为所述基础文件包和业务文件包创建不同的标识信息;
响应于页面加载请求,获取待加载页面对应的基础文件包和业务文件包,并创建所述待加载页面对应的堆栈;
加载所述基础文件包,在成功加载所述基础文件包的情况下,加载所述业务文件包,并在所述堆栈中记录页面加载对应的堆栈信息,所述堆栈信息中包括所述基础文件包和业务文件包分别对应的标识信息;
在页面运行过程中,监控所述页面是否发生异常;
在监控到发生异常的情况下,获取堆栈返回的与所述异常对应的目标堆栈信息;
识别所述目标堆栈信息中的目标标识信息,并根据所述目标标识信息确定引起所述异常的文件包类型。
7.根据权利要求6所述的设备,其特征在于,所述处理器还用于:
根据所述目标堆栈信息中的目标标识信息,确定引起页面加载异常的目标源文件,并在所述目标源文件中定位引起所述异常的程序代码位置。
8.一种数据处理装置,其特征在于,包括:数据获取模块、数据处理模块和监控模块;
所述数据获取模块,在获取待加载页面对应的多个源文件,对所述多个源文件进行拆分并压缩得到与源文件的内容位置具有映射关系的文件包,所述文件包包括基础文件包和业务文件包,为所述基础文件包和业务文件包创建不同的标识信息,响应到页面加载请求的情况下,用于获取待加载页面对应的基础文件包和业务文件包,并创建所述待加载页面对应的堆栈;
所述数据处理模块,用于加载所述基础文件包,在成功加载所述基础文件包的情况下,加载所述业务文件包,并在所述堆栈中记录页面加载对应的堆栈信息,所述堆栈信息中包括所述基础文件包和业务文件包分别对应的标识信息;
所述监控模块,用于在页面运行过程中,监控所述页面是否发生异常;在监控到发生异常的情况下,获取堆栈返回的与所述异常对应的目标堆栈信息;以及识别所述目标堆栈信息中的目标标识信息,并根据所述目标标识信息确定引起所述异常的文件包类型。
9.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机设备能够执行权利要求1-5任一项所述方法中步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现权利要求1-5任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423965.8A CN114356434B (zh) | 2021-11-26 | 2021-11-26 | 页面加载方法、设备、装置、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111423965.8A CN114356434B (zh) | 2021-11-26 | 2021-11-26 | 页面加载方法、设备、装置、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114356434A CN114356434A (zh) | 2022-04-15 |
CN114356434B true CN114356434B (zh) | 2024-03-26 |
Family
ID=81097424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111423965.8A Active CN114356434B (zh) | 2021-11-26 | 2021-11-26 | 页面加载方法、设备、装置、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114356434B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117270986A (zh) * | 2022-06-14 | 2023-12-22 | 中兴通讯股份有限公司 | 页面的加载方法及装置、存储介质、电子装置 |
CN115687820A (zh) * | 2022-10-10 | 2023-02-03 | 京东科技信息技术有限公司 | 页面恢复方法、装置及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895508B1 (en) * | 2000-09-07 | 2005-05-17 | International Business Machines Corporation | Stack memory protection |
CN105468478A (zh) * | 2015-11-26 | 2016-04-06 | 北京京东尚科信息技术有限公司 | 一种应用崩溃后的业务数据恢复方法及装置 |
CN106454914A (zh) * | 2016-11-10 | 2017-02-22 | 邦彦技术股份有限公司 | 一种ims的大批量业务出现异常的定位方法及装置 |
CN108089977A (zh) * | 2017-11-28 | 2018-05-29 | 维沃移动通信有限公司 | 一种应用程序的异常处理方法、装置及移动终端 |
CN108334515A (zh) * | 2017-01-20 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种处理崩溃文件中堆栈地址的方法、装置及系统 |
CN109740090A (zh) * | 2018-12-25 | 2019-05-10 | 南京天溯自动化控制系统有限公司 | 一种基于混合开发的android页面返回跳转方法及其系统 |
CN109783744A (zh) * | 2018-12-05 | 2019-05-21 | 北京奇艺世纪科技有限公司 | 页面启动方法、装置、终端及计算机可读存储介质 |
CN110727581A (zh) * | 2019-09-06 | 2020-01-24 | 网宿科技股份有限公司 | 崩溃定位方法与电子设备 |
CN112241300A (zh) * | 2019-07-19 | 2021-01-19 | 北京京东尚科信息技术有限公司 | 应用页面的加载方法和加载装置 |
CN112395119A (zh) * | 2019-08-12 | 2021-02-23 | 北京达佳互联信息技术有限公司 | 异常数据处理方法、装置、服务器及存储介质 |
CN113157480A (zh) * | 2021-04-23 | 2021-07-23 | Oppo广东移动通信有限公司 | 错误信息处理方法、装置、存储介质以及终端 |
CN113656107A (zh) * | 2021-08-23 | 2021-11-16 | 天津中新智冠信息技术有限公司 | 移动应用的加载方法、装置及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0009945D0 (en) * | 2000-04-20 | 2000-06-07 | Sgs Thomson Microelectronics | Debugging device nad method |
-
2021
- 2021-11-26 CN CN202111423965.8A patent/CN114356434B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895508B1 (en) * | 2000-09-07 | 2005-05-17 | International Business Machines Corporation | Stack memory protection |
CN105468478A (zh) * | 2015-11-26 | 2016-04-06 | 北京京东尚科信息技术有限公司 | 一种应用崩溃后的业务数据恢复方法及装置 |
CN106454914A (zh) * | 2016-11-10 | 2017-02-22 | 邦彦技术股份有限公司 | 一种ims的大批量业务出现异常的定位方法及装置 |
CN108334515A (zh) * | 2017-01-20 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种处理崩溃文件中堆栈地址的方法、装置及系统 |
CN108089977A (zh) * | 2017-11-28 | 2018-05-29 | 维沃移动通信有限公司 | 一种应用程序的异常处理方法、装置及移动终端 |
CN109783744A (zh) * | 2018-12-05 | 2019-05-21 | 北京奇艺世纪科技有限公司 | 页面启动方法、装置、终端及计算机可读存储介质 |
CN109740090A (zh) * | 2018-12-25 | 2019-05-10 | 南京天溯自动化控制系统有限公司 | 一种基于混合开发的android页面返回跳转方法及其系统 |
CN112241300A (zh) * | 2019-07-19 | 2021-01-19 | 北京京东尚科信息技术有限公司 | 应用页面的加载方法和加载装置 |
CN112395119A (zh) * | 2019-08-12 | 2021-02-23 | 北京达佳互联信息技术有限公司 | 异常数据处理方法、装置、服务器及存储介质 |
CN110727581A (zh) * | 2019-09-06 | 2020-01-24 | 网宿科技股份有限公司 | 崩溃定位方法与电子设备 |
CN113157480A (zh) * | 2021-04-23 | 2021-07-23 | Oppo广东移动通信有限公司 | 错误信息处理方法、装置、存储介质以及终端 |
CN113656107A (zh) * | 2021-08-23 | 2021-11-16 | 天津中新智冠信息技术有限公司 | 移动应用的加载方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114356434A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114356434B (zh) | 页面加载方法、设备、装置、存储介质及程序产品 | |
CN110764945B (zh) | 一种崩溃日志处理方法、装置、设备和存储介质 | |
CN110083543B (zh) | 回归测试方法、装置、电子设备及存储介质 | |
CN108121633B (zh) | 异常捕获方法及装置 | |
CN112181696B (zh) | 异常信息处理方法、设备及存储介质 | |
CN107678948B (zh) | 测试用例生成方法、终端及存储介质 | |
CN112416775B (zh) | 基于人工智能的软件自动化测试方法、装置及电子设备 | |
CN111008135A (zh) | App测试方法、装置、设备及存储介质 | |
CN113722394A (zh) | 数据同步方法、设备及存储介质 | |
CN112486946A (zh) | 一种版本确认方法、系统、电子设备及存储介质 | |
CN111930703A (zh) | 日志文件自动抓取方法、装置和计算机设备 | |
CN112347404A (zh) | Spa页面渲染方法、设备、系统及存储介质 | |
CN112463618A (zh) | 自动化测试方法、装置、介质及设备 | |
CN110659210A (zh) | 一种信息获取方法、装置、电子设备及存储介质 | |
CN110795353B (zh) | 快应用的调试方法、装置、设备及存储介质 | |
CN110837467B (zh) | 软件测试方法、装置以及系统 | |
CN112764796A (zh) | 安装包生成系统 | |
CN114168183A (zh) | 前端资源信息处理方法、装置、设备及存储介质 | |
CN112069057A (zh) | 代码测试方法、设备、装置及存储介质 | |
CN117667604B (zh) | 追踪事件的数据监测方法、装置、电子设备及存储介质 | |
CN116991449B (zh) | 内核子系统热升级方法、设备及存储介质 | |
CN116166463A (zh) | 云计算实例的故障分析方法、装置、设备、系统及介质 | |
CN116991725A (zh) | 接口测试管理系统、方法、设备及程序产品 | |
CN111953803A (zh) | Bmc启动方法、设备、系统及存储介质 | |
CN117667604A (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 |