CN117270986A - 页面的加载方法及装置、存储介质、电子装置 - Google Patents

页面的加载方法及装置、存储介质、电子装置 Download PDF

Info

Publication number
CN117270986A
CN117270986A CN202210668449.XA CN202210668449A CN117270986A CN 117270986 A CN117270986 A CN 117270986A CN 202210668449 A CN202210668449 A CN 202210668449A CN 117270986 A CN117270986 A CN 117270986A
Authority
CN
China
Prior art keywords
script
kth
script file
files
abnormality
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
Application number
CN202210668449.XA
Other languages
English (en)
Inventor
孙锶辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202210668449.XA priority Critical patent/CN117270986A/zh
Priority to PCT/CN2023/100016 priority patent/WO2023241592A1/zh
Publication of CN117270986A publication Critical patent/CN117270986A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种页面的加载方法及装置、存储介质、电子装置,该方法包括:解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,N是大于或等于1的自然数,K是小于或等于N的自然数;在对第K个脚本文件的解析出现异常的情况下,对第K个脚本文本执行异常处理;在第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,其他脚本文件是N个脚本文件中未被解析的脚本文件。通过本发明,解决了相关技术中脚本文件出现异常时,无法加载页面的问题,达到提高页面加载效率的效果。

Description

页面的加载方法及装置、存储介质、电子装置
技术领域
本发明实施例涉及计算机领域,具体而言,涉及一种页面的加载方法及装置、存储介质、电子装置。
背景技术
现有技术中,在加载页面时,如果对其中一个脚本文件的解析出现异常,则导致页面加载失败。例如,在机顶盒浏览器解析页面时,由于交互式网络电视IPTV的页面解析只能通过遥控器单页面跳转,无法像平常加载个人计算机(Personal Computer,简称为PC)端网页页面一样,页面报错的时候通过鼠标点击刷新或者直接关闭当前页面或者直接修改网页跳转地址等人工干预的方式手动跳过异常情况,所以当前机顶盒浏览器在加载页面出现脚本JS(JavaScript)文件解析异常时,开源公共版本只对少量类型(例如,try类型)JS进行错误捕捉,其余的均抛出异常,导致后续整个JS解析都失败。导致黑屏、按键不响应、无焦点、跳转异常、无法起播、开机异常等等情况,严重影响用户体验。
发明内容
本发明实施例提供了一种页面的加载方法及装置、存储介质、电子装置,以至少解决相关技术中脚本文件出现异常时,无法加载页面的问题。
根据本发明的一个实施例,提供了一种页面的加载方法,包括:解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,上述N是大于或等于1的自然数,上述K是小于或等于上述N的自然数;在对上述第K个脚本文件的解析出现异常的情况下,对上述第K个脚本文本执行异常处理;在上述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,上述其他脚本文件是N个上述脚本文件中未被解析的脚本文件。
根据本发明的另一个实施例,提供了一种页面的加载装置,包括:第一解析模块,用于解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,上述N是大于或等于1的自然数,上述K是小于或等于上述N的自然数;第一处理模块,用于在对上述第K个脚本文件的解析出现异常的情况下,对上述第K个脚本文本执行异常处理;第二解析模块,用于在上述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,上述其他脚本文件是N个上述脚本文件中未被解析的脚本文件。
在一个示例性实施例中,上述第一解析模块,包括:第一发送单元,用于将上述第K个脚本文件发送至引擎设备;第一解析单元,用于通过上述引擎设备对上述第K个脚本文件进行解析。
在一个示例性实施例中,上述第一处理模块,包括:第一确定单元,用于在解析出上述第K个脚本文件中的异常的情况下,确定上述第K个脚本文件所应用的业务场景;第一处理单元,用于基于上述业务场景对上述第K个脚本文件执行异常处理。
在一个示例性实施例中,上述第一处理单元,包括:第一生成子单元,用于生成与上述业务场景对应的异常参数值;第一屏蔽子单元,用于将上述异常参数值返回至上述目标页面,以屏蔽上述第K个脚本文件的异常。
在一个示例性实施例中,上述第二解析模块,包括:第一获取单元,用于在上述第K个脚本文件的异常被屏蔽的情况下,从上述目标页面获取上述其他脚本文件,其中,上述其他脚本文件是上述第K个脚本文件的下一个待解析的脚本文件;第二解析单元,用于解析上述其他脚本文件;第一加载单元,用于在上述其他脚本文件未出现异常,或者,上述其他脚本文件出现的异常被屏蔽的情况下,加载出上述目标页面。
在一个示例性实施例中,上述装置还包括:第二处理模块,用于在上述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面之前,在上述第K个脚本文件的异常无法被屏蔽的情况下,抛出上述第K个脚本文件的异常;第一终止模块,用于终止对上述其他脚本文件的解析,以中断对上述目标页面的加载。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过解析获取的目标页面中N个脚本文件中的第K个脚本文件,在第K个脚本文件的解析出现异常的情况下,对第K个脚本文本执行异常处理;在第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,其他脚本文件是N个脚本文件中未被解析的脚本文件。由于在上述方法中,第K个脚本文件出现异常时,跳过第K个脚本文件继续解析其他脚本文件,而不是直接抛出异常,进而可以继续加载目标页面,而不是终止对目标页面的记载。进而实现了目标页面的正常加载。从而可以解决相关技术中脚本文件出现异常时,无法加载页面的问题,达到提高页面加载效率的效果。
附图说明
图1是本发明实施例的一种页面的加载方法的移动终端的硬件结构框图;
图2是根据本发明实施例的页面的加载方法的流程图;
图3是本发明实施例的JS脚本执行异常与容错的整体框架流程图;
图4是本发明实施例的JS异常容错机制的流程图;
图5是根据本发明实施例的光轴的调整装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种页面的加载方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的页面的加载方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种页面的加载方法,图2是根据本发明实施例的页面的加载方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,N是大于或等于1的自然数,K是小于或等于N的自然数;
步骤S204,在对第K个脚本文件的解析出现异常的情况下,对第K个脚本文本执行异常处理;
步骤S206,在第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,其他脚本文件是N个脚本文件中未被解析的脚本文件。
本实施例包括但不限于应用于加载页面的场景中,例如,智能机顶盒领域的浏览器内核对接IPTV模板业务的应用场景,PC端加载页面的应用场景,安卓系统的智能电视和智能手机,同时不排除可以应用于其他支持或兼容安卓系统的终端。
在本实施例中,目标页面中可以包括多个脚本文本,脚本文件包括但不限于是JS脚本。第K个脚本文件是多个脚本文件中的任一脚本文件。例如,目标页面中包括6个脚本文件,在解析第3个脚本文件出现异常时,对第3个脚本文件执行异常处理,继续解析第4个脚本文件。直到解析完所有的脚本文件,加载出目标页面为止。
在本实施例中,对第K个脚本文件的解析出现异常可以是以下几种情况导致的:
1)目标页面编写不规范,如函数、变量未定义就使用,或者,未按照电信规范调用接口,导致JS解析异常;
2)数据下载异常(缺失、下载数据格式不规范等),导致后续目标页面解析获取数据失败,导致JS解析异常;
3)由于浏览器接入多个平台模板,各个厂家平台模板编写特性规范不统一,导致JS解析异常。
在本实施例中,对第K个脚本文本执行异常处理包括捕捉异常、打印异常、屏蔽异常和返回正常回调等处理。例如,当发生JS脚本解析异常时,捕捉JS脚本的异常,并将异常加入JS异常情况容错机制。容错机制包括在抛错前拦截异常,并根据业务场景返回给目标页面一个初始值,让目标页面在解析该异常参数不抛错的情况下,能继续进行后续业务处理,保障目标页面功能的正常运行。
进一步举例说明,根据各个页面统计常见的JS异常场景,得出以下几类JS异常场景,并对各个JS异常场景中基于本实施例的容错版本和原始版本进行对比。
(1)变量未定义:
描述:电子节目指南(electrical program guide,简称EPG)模板通常需要使用变量赋值来进行操作,但是如果赋值的变量未定义,引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
Uncaught ReferenceError:a is not defined。
C、本实施例的容错结果:
JS alert:undefined。
(2)函数未定义:
描述:EPG模板通常需要使用函数赋值来进行操作,但是如果赋值的函数未定义,引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
Uncaught ReferenceError:func is not defined。
C、本实施例的容错结果:
JS alert:undefined。
(3)属性未定义:
描述:EPG模板通常需要解析变量的属性值,但如果变量属性未定义,容易引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
Uncaught TypeError:Cannot read property'-1'of undefined。
C、本实施例的容错结果:
JS alert:undefined。
(4)数组属性未定义:
描述:EPG模板通常需要定义数组来存储焦点、图片等信息,如果数组未定义属性,容易引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
Uncaught TypeError:Cannot set property'91'of undefined。
C、本实施例的容错结果:
JS alert:undefined。
JS alert:undefined。
(5)parent.function类型全局函数未定义:
描述:EPG模板通常按键定义、事件监听、事件注册、日志打印控制等公共函数模块都是在主框架定义,子页面iframe模块可以通过parent调用父框架公共函数,如以下案例,但是当父框架函数未定义的时候,通过parent调用浏览器解析将会引发JS异常,导致EPG模板加载失败。
A、测试样例:
<script>
var key=parent.key();
var a=1;
alert(a);
</script>
B、原始模板浏览器解析结果:
"Uncaught TypeError:parent.key is not a function"。
C、本实施例的容错结果:
JS alert:1。
(6)top.function类型全局函数未定义:
描述:EPG模板通常按键定义、事件监听、事件注册、日志打印控制等公共函数模块都是在主框架定义,子页面iframe模块可以通过top调用父框架公共函数,如以下案例,但是当父框架函数未定义的时候,通过top调用浏览器解析将会引发JS异常,导致EPG模板加载失败。
A、测试样例:
<script>
var key=top.key();
var a=1;
alert(a);
</script>
B、原始模板浏览器解析结果:
"Uncaught TypeError:top.key is not a function"。
C、本实施例的容错结果:
JS alert:1。
(7)$.function类型全局函数未定义:
描述:EPG模板通常按键定义、事件监听、事件注册、日志打印控制等公共函数模块都是在主框架定义,子页面iframe模块可以通过$调用父框架公共函数,如以下案例,但是当父框架函数未定义的时候,通过top调用浏览器解析将会引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
"Uncaught TypeError:$.key is not a function"。
C、本实施例的容错结果:
JS alert:1。
(8)构造函数未定义:
描述:EPG模板在某些情况下调用未定义的构造函数,如语音控制文件的()varlistener=new Xiri.Listener(callback))监听语音遥控器等,还有按键监听(this.BACK_KEY=new Event("Back Key",Event.TYPE_KEY_EVENT);)等都需要用到构造函数。但是当epg模板调用未定义的构造函数,将引发JS解析异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
"Uncaught TypeError:FocusGraphOrganizer is not aconstructor"。
C、本发明容错结果:
JS alert:app。
(9)解析空JSON数据:
描述:EPG模板经常需要通过JSON.parse函数解析下载的JSON数据或者解析按键上报的JSON事件,但是并非所有下载的JSON数据都必须有值,当返回的JSON数据为空的时候,易引发JS解析异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
"Uncaught SyntaxError:Unexpected end of JSON input"。
C、本实施例的容错结果:
JS alert:empty data!
(10)未定义函数使用indexof:
描述:EPG模板在判断某个函数或者变量是否包含某些东西的时候经常需要调用indexOf方法,但是当未定义函数或者变量调用indexOf的时候,将引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
Uncaught SyntaxError:Unexpected token。
C、本实施例的容错结果:
JS alert:other function。
(11)未定义变量返回代码(function(){[native code]}):
描述:EPG模板经常会需要在页面上展示某些变量信息,如频道号,节目名称等。但是当调用未定义变量的属性值得时候,容错返回字符串代码,影响体验效果,这种情况应该返回undefined。
A、测试样例:
B、原始模板浏览器解析结果:
JS alert:function(){[native code]}。
JS alert:function(){[native code]}。
C、本实施例的容错结果:
JS alert:undefined。
JS alert:undefined。
(12)非法使用return:
描述:EPG模板因为涉及多个模块,存在模板编写不规范,当在function之外使用return的时候,浏览器解析将引发JS异常,导致EPG模板加载失败。
A、测试样例:
B、原始模板浏览器解析结果:
"Uncaught SyntaxError:Illegal return statement"。
C、本发明容错结果:
JS alert:0。
其中,上述步骤的执行主体可以为终端、服务器、终端或服务器中设置的具体处理器,或者与终端或者服务器相对独立设置的处理器或者处理设备等,但不限于此。
通过上述步骤,通过解析获取的目标页面中N个脚本文件中的第K个脚本文件,在第K个脚本文件的解析出现异常的情况下,对第K个脚本文本执行异常处理;在第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,其他脚本文件是N个脚本文件中未被解析的脚本文件。由于在上述方法中,第K个脚本文件出现异常时,跳过第K个脚本文件继续解析其他脚本文件,而不是直接抛出异常,进而可以继续加载目标页面,而不是终止对目标页面的记载。进而实现了目标页面的正常加载。从而可以解决相关技术中脚本文件出现异常时,无法加载页面的问题,达到提高页面加载效率的效果。
在一个示例性实施例中,解析获取的目标页面中N个脚本文件中的第K个脚本文件,包括:
S1,将第K个脚本文件发送至引擎设备;
S2,通过引擎设备对第K个脚本文件进行解析。
在本实施例中,引擎设备包括但不限于是一个程序或一套系统的支持部分,例如,V8 JS引擎,V8 JS引擎用于对脚本文件进行解析。通过引擎设备可以更加快速的解析脚本文件。
在一个示例性实施例中,在对第K个脚本文件的解析出现异常的情况下,对第K个脚本文本执行异常处理,包括:
S1,在解析出第K个脚本文件中的异常的情况下,确定第K个脚本文件所应用的业务场景;
S2,基于业务场景对第K个脚本文件执行异常处理。
在本实施例中,业务场景包括但不限于是页面中定义参数的场景,或者是函数使用的场景。例如,定义变量的场景、定义函数的场景、定义属性的场景、定义数组属性的场景、定义parent.function类型全局函数的场景、定义top.function类型全局函数的场景、定义$.function类型全局函数的场景、定义构造函数的场景、解析空JSON数据的场景、定义函数使用indexof的场景、定义变量返回代码(function(){[native code]})的场景、使用return的场景。例如,在定义变量的场景中,对第K个脚本文件执行异常处理。
在一个示例性实施例中,基于业务场景对第K个脚本文件执行异常处理,包括:
S1,生成与业务场景对应的异常参数值;
S2,将异常参数值返回至目标页面,以屏蔽第K个脚本文件的异常。
在本实施例中,异常参数值可以是预设的参数值,例如,0、1。也可以使语句参数值,例如,undefined、other function等。异常参数值可以基于脚本的业务场景进行定义。
例如,JS脚本在定义变量的场景中,赋值的变量未定义,引发JS脚本异常时,异常参数值可以是“JS alert:undefined”。将“JS alert:undefined”返回至当前JS执行栈序列环境,继续将下一行JS脚本行入栈执行,接着继续执行后续没有异常的JS脚本行。
通过本实施例,通过返回至页面具体的异常参数值,可以使得页面不会直接抛出异常,可以继续解析下一个脚本文件,从而使页面可以继续加载。
在一个示例性实施例中,在第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,包括:
S1,在第K个脚本文件的异常被屏蔽的情况下,从目标页面获取其他脚本文件,其中,其他脚本文件是第K个脚本文件的下一个待解析的脚本文件;
S2,解析其他脚本文件;
S3,在其他脚本文件未出现异常,或者,其他脚本文件出现的异常被屏蔽的情况下,加载出目标页面。
在本实施例中,解析其他脚本文件的方式与解析第K个脚本文件的方式相同,例如,通过V8 JS引擎解析其他脚本文件。
在本实施例中,容错的脚本文件的数量不进行限制,脚本文件只要出现异常,均可以通过容错机制进行容错处理。例如,在第3个脚本文件出现异常,执行容错机制之后,继续解析第4个脚本文件,如果第4个脚本文件依然存在异常,则继续对第4个脚本文件执行容错机制,知道解析至最后一个脚本文件为止。容错机制用于屏蔽出现异常的脚本文件,包括在抛错前拦截异常,并根据业务场景返回给目标页面一个初始值,让目标页面在解析该异常参数不抛错的情况下,能继续进行后续业务处理,保障目标页面功能的正常运行。
在一个示例性实施例中,在第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面之前,方法还包括:
S1,在第K个脚本文件的异常无法被屏蔽的情况下,抛出第K个脚本文件的异常;
S2,终止对其他脚本文件的解析,以中断对目标页面的加载。
在本实施例中,在页面存在加大错误时,脚本文件的异常无法屏蔽。则真正抛出异常。例如,在非法使用return的以下异常场景中:
直接抛出JS脚本异常的语句,"Uncaught SyntaxError:Illegalreturnstatement"。抛出JS脚本异常报错后中断JS脚本的执行。此外,JS脚本执行成功后将正常结果返回JS引擎继续执行。
通过本实施例,通过对脚本文件的异常处理,可以提高页面异常处理的效率。
下面结合具体实施例对本发明进行说明:
本实施例以对页面中的JS脚本文件的异常处理为例进行说明,在本实施例中,在解析页面时,在保障核心功能主流程正常解析的情况下,当发生JS解析异常,浏览器捕捉异常并加入JS异常情况容错机制,通过在抛错前拦截异常,并根据业务场景返回给页面一个初始值,让页面在解析该参数不抛错的情况下,能继续进行后续业务处理,保障页面功能的正常运行。
如图3所示,是本实施例中的JS脚本执行异常与容错的整体框架流程图,具体包括以下步骤:
S301,浏览器下载业务服务器平台的模板页面;
S302,浏览器内核将JS脚本交付给V8 JS引擎进行解析;
S303,V8 JS引擎对JS脚本进行解析;
S304,正常JS脚本解析成功继续执行对页面的加载;
S305,JS脚本解析发现有上述业务场景中的某类异常或错误;
S306,V8 JS引擎捕获异常并将错误情况交付给容错机制模板处理,容错机制模板的容错处理详见上述实施例;
S307,将异常JS脚本容错后继续交付执行;
S308,无法容错的JS脚本错误真正抛出异常;
S309,抛出JS异常报错后中断JS执行;
S310,JS脚本执行成功后将正常结果返回JS引擎继续执行。
在本实施例中,上述中的JS异常容错机制的流程如图4所示,包括以下步骤:
S401,JS引擎解析正常的JS脚本行1;
S402,出现异常的JS脚本行2,有可能是上述异常场景中的一种;
S403,启用JS脚本异常处理机制,包括捕获异常、打印异常、屏蔽异常和返回正常回调等处理;具体技术处理包括在当前行的JS脚本执行捕获到异常时,将本来要入栈的操作中止跳过,直接返回到当前JS执行栈序列环境,继续将下一行JS脚本行入栈执行;
S404,接着继续执行后续没有异常的JS脚本行3。
在本实施例中,JS脚本异常处理机制还可以包括以下方式:
1)模板页面主动修改JS脚本错误代码,让浏览器下载的JS脚本完全没有异常;
2)浏览器下载页面后,替换有异常或错误的JS脚本代码,让JS引擎不要解析到JS脚本错误并保证流程正常。
本实施例中对JS脚本的异常处理可以规避以下几类页面因为JS脚本代码错误导致的显示异常:没有显示效果,根据具体页面的内容显示要求,如果出现JS脚本异常,有可能打开页面没法正常生成并展现页面内容;用户按键操作不响应,因为JS脚本错误,导致正常JS脚本没法被执行,导致页面没法正常受理用户按键操作;页面展示的内容异常,通常表现为文字显示为乱码或者其他非正常文本。
综上所述,本实施例能让浏览器对接模板页面时,可以很容易就兼容页面开发人员因代码低级错误而发生的JS脚本异常和错误,浏览器能在自行纠正页面错误而不影响具体功能和流程,可以节省很多对接模板的时间,提高工作效率,节省人力成本。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种光轴的调整装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的光轴的调整装置的结构框图,如图5所示,该装置包括:
第一解析模块52,用于解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,上述N是大于或等于1的自然数,上述K是小于或等于上述N的自然数;
第一处理模块54,用于在对上述第K个脚本文件的解析出现异常的情况下,对上述第K个脚本文本执行异常处理;
第二解析模块56,用于在上述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,上述其他脚本文件是N个上述脚本文件中未被解析的脚本文件。
在一个示例性实施例中,上述第一解析模块,包括:
第一发送单元,用于将上述第K个脚本文件发送至引擎设备;
第一解析单元,用于通过上述引擎设备对上述第K个脚本文件进行解析。
在一个示例性实施例中,上述第一处理模块,包括:
第一确定单元,用于在解析出上述第K个脚本文件中的异常的情况下,确定上述第K个脚本文件所应用的业务场景;
第一处理单元,用于基于上述业务场景对上述第K个脚本文件执行异常处理。
在一个示例性实施例中,上述第一处理单元,包括:
第一生成子单元,用于生成与上述业务场景对应的异常参数值;
第一屏蔽子单元,用于将上述异常参数值返回至上述目标页面,以屏蔽上述第K个脚本文件的异常。
在一个示例性实施例中,上述第二解析模块,包括:
第一获取单元,用于在上述第K个脚本文件的异常被屏蔽的情况下,从上述目标页面获取上述其他脚本文件,其中,上述其他脚本文件是上述第K个脚本文件的下一个待解析的脚本文件;
第二解析单元,用于解析上述其他脚本文件;
第一加载单元,用于在上述其他脚本文件未出现异常,或者,上述其他脚本文件出现的异常被屏蔽的情况下,加载出上述目标页面。
在一个示例性实施例中,上述装置还包括:
第二处理模块,用于在上述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面之前,在上述第K个脚本文件的异常无法被屏蔽的情况下,抛出上述第K个脚本文件的异常;
第一终止模块,用于终止对上述其他脚本文件的解析,以中断对上述目标页面的加载。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以上各步骤的计算机程序。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
在一个示例性实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种页面的加载方法,其特征在于,包括:
解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,所述N是大于或等于1的自然数,所述K是小于或等于所述N的自然数;
在对所述第K个脚本文件的解析出现异常的情况下,对所述第K个脚本文本执行异常处理;
在所述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,所述其他脚本文件是N个所述脚本文件中未被解析的脚本文件。
2.根据权利要求1所述的方法,其特征在于,解析获取的目标页面中N个脚本文件中的第K个脚本文件,包括:
将所述第K个脚本文件发送至引擎设备;
通过所述引擎设备对所述第K个脚本文件进行解析。
3.根据权利要求1所述的方法,其特征在于,在对所述第K个脚本文件的解析出现异常的情况下,对所述第K个脚本文本执行异常处理,包括:
在解析出所述第K个脚本文件中的异常的情况下,确定所述第K个脚本文件所应用的业务场景;
基于所述业务场景对所述第K个脚本文件执行异常处理。
4.根据权利要求3所述的方法,其特征在于,基于所述业务场景对所述第K个脚本文件执行异常处理,包括:
生成与所述业务场景对应的异常参数值;
将所述异常参数值返回至所述目标页面,以屏蔽所述第K个脚本文件的异常。
5.根据权利要求1所述的方法,其特征在于,在所述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,包括:
在所述第K个脚本文件的异常被屏蔽的情况下,从所述目标页面获取所述其他脚本文件,其中,所述其他脚本文件是所述第K个脚本文件的下一个待解析的脚本文件;
解析所述其他脚本文件;
在所述其他脚本文件未出现异常,或者,所述其他脚本文件出现的异常被屏蔽的情况下,加载出所述目标页面。
6.根据权利要求1所述的方法,其特征在于,在所述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面之前,所述方法还包括:
在所述第K个脚本文件的异常无法被屏蔽的情况下,抛出所述第K个脚本文件的异常;
终止对所述其他脚本文件的解析,以中断对所述目标页面的加载。
7.一种页面的加载装置,其特征在于,包括:
第一解析模块,用于解析获取的目标页面中N个脚本文件中的第K个脚本文件,其中,所述N是大于或等于1的自然数,所述K是小于或等于所述N的自然数;
第一处理模块,用于在对所述第K个脚本文件的解析出现异常的情况下,对所述第K个脚本文本执行异常处理;
第二解析模块,用于在所述第K个脚本文件的异常被屏蔽的情况下,解析其他脚本文件,以加载出述目标页面,其中,所述其他脚本文件是N个所述脚本文件中未被解析的脚本文件。
8.根据权利要求7所述的装置,其特征在于,所述第一解析模块,包括:
第一发送单元,用于将所述第K个脚本文件发送至引擎设备;
第一解析单元,用于通过所述引擎设备对所述第K个脚本文件进行解析。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
CN202210668449.XA 2022-06-14 2022-06-14 页面的加载方法及装置、存储介质、电子装置 Pending CN117270986A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210668449.XA CN117270986A (zh) 2022-06-14 2022-06-14 页面的加载方法及装置、存储介质、电子装置
PCT/CN2023/100016 WO2023241592A1 (zh) 2022-06-14 2023-06-13 页面的加载方法及装置、存储介质、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210668449.XA CN117270986A (zh) 2022-06-14 2022-06-14 页面的加载方法及装置、存储介质、电子装置

Publications (1)

Publication Number Publication Date
CN117270986A true CN117270986A (zh) 2023-12-22

Family

ID=89192295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210668449.XA Pending CN117270986A (zh) 2022-06-14 2022-06-14 页面的加载方法及装置、存储介质、电子装置

Country Status (2)

Country Link
CN (1) CN117270986A (zh)
WO (1) WO2023241592A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095874A (zh) * 2016-06-03 2016-11-09 青岛海信移动通信技术股份有限公司 一种显示页面的方法和设备
CN107515907B (zh) * 2017-08-10 2018-12-21 北京海泰方圆科技股份有限公司 浏览器页面的显示方法和装置
CN111352838A (zh) * 2020-02-28 2020-06-30 中国平安人寿保险股份有限公司 一种包文件生成方法、包文件生成装置及电子设备
CN114356434B (zh) * 2021-11-26 2024-03-26 北京达佳互联信息技术有限公司 页面加载方法、设备、装置、存储介质及程序产品

Also Published As

Publication number Publication date
WO2023241592A1 (zh) 2023-12-21

Similar Documents

Publication Publication Date Title
CN109766262B (zh) 接口数据处理方法、自动化测试方法、装置、设备和介质
CN107133180B (zh) 动态页面的测试方法、测试装置及存储介质
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN106878361B (zh) 一种终端应用页面的调试方法、装置及客户端
CN109656773B (zh) 一种基于ios系统应用异常崩溃的处理框架
CN111258913A (zh) 算法自动测试方法、装置、计算机系统及可读存储介质
CN109766205A (zh) 异常处理方法、装置、计算机设备和存储介质
CN108427639B (zh) 自动化测试方法、应用服务器及计算机可读存储介质
CN112131127B (zh) 接口测试方法、装置、系统及电子设备
CN109634838A (zh) 定位应用程序故障的方法、装置、存储介质和电子设备
CN109460310B (zh) 基于web接口的信息收集系统、方法、设备及存储介质
CN117270986A (zh) 页面的加载方法及装置、存储介质、电子装置
EP4369203A1 (en) Cloud platform docking debugging method and apparatus, and electronic device and storage medium
CN110716789A (zh) 数据配置方法、可读存储介质和电子设备
CN115016995A (zh) 接口测试方法、计算机设备及计算机存储介质
CN115292636A (zh) H5页面录制方法、装置和设备及存储介质
CN114817024A (zh) 用例生成方法及装置、设备、存储介质
CN114979100A (zh) 一种云资源检查方法及相关装置
CN110347597B (zh) 图片服务器的接口测试方法、装置、存储介质与移动终端
CN113641580A (zh) 混合模式移动应用调试方法及系统
CN113067878A (zh) 信息采集方法、装置、设备、介质及程序产品
CN110737598A (zh) 基于页面组件特性对页面内容进行测试的方法及装置
CN113434417B (zh) 漏洞的回归测试方法及装置、存储介质、电子装置
CN111026650B (zh) 软件测试的方法、装置、存储介质和电子设备
US20170123818A1 (en) Dynamic Configuration of Native Functions to Intercept

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication