CN103678134B - 浏览器待故障分析的脚本信息的获取方法及装置 - Google Patents
浏览器待故障分析的脚本信息的获取方法及装置 Download PDFInfo
- Publication number
- CN103678134B CN103678134B CN201310719022.9A CN201310719022A CN103678134B CN 103678134 B CN103678134 B CN 103678134B CN 201310719022 A CN201310719022 A CN 201310719022A CN 103678134 B CN103678134 B CN 103678134B
- Authority
- CN
- China
- Prior art keywords
- script
- function
- information
- browser
- directive
- 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.)
- Expired - Fee Related
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000009471 action Effects 0.000 claims abstract description 96
- 238000012544 monitoring process Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 35
- 230000006870 function Effects 0.000 description 227
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 201000004569 Blindness Diseases 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Landscapes
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种浏览器待故障分析的脚本信息的获取方法及装置,本发明在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
Description
技术领域
本发明涉及到智能终端浏览器故障处理领域,特别涉及到一种浏览器待故障分析的脚本信息的获取方法及装置。
背景技术
随着智能终端(例如,智能电视)的快速发展,人们对智能电视要求越来越高,由此业务***引入的业务应用也越来越多,而这些业务的呈现都需要通过智能电视的浏览器来实现,即需要嵌入式浏览器支持的功能越来越复杂,例如,HTML5音视频播放、3D页面显示、Widget应用、多窗口展示及网络离线存储等新业务应用的迅速推广。大量的业务应用都是通过网页设计(页面逻辑控制)进行实现,而网页设计主要是由脚本语言来完成,越复杂的业务应用就需要多样化和复杂话的页面逻辑控制来完成,因此,脚本语言(例如,javascript)在网页设计中就越来越重要。脚本语言的执行都是通过浏览器进行,所以复杂的脚本逻辑一旦出现问题,将直接导致用户无法正常的访问页面,极大的降低了用户的体验度。同时,如果脚本逻辑出现问题,就需要浏览器开发人员对业务应用实现的脚本语言进行定位分析,找出利用脚本语言无法实现业务应用的原因,但是复杂的页面和脚本语言让浏览器开发人员不知道从何开始入手分析。
目前,浏览器开发人员对业务应用实现的脚本语言进行定位分析的方式通常为:由浏览器开发人员对页面和脚本语言进行重新组合链接,让浏览器进行脚本逻辑问题的重现,并在脚本语言中盲目的添加大量打印信息,然后通过查看脚本语言中添加的打印信息,找到脚本语言执行的方式和路径,如果打印信息添加的有误,还需要反复的进行这样的操作。
因而,上述定位分析的方式极大的浪费了开发人员的时间,且无法准确的对出现问题的脚本语言的执行逻辑进行定位,降低了解决浏览器故障的速度。
发明内容
本发明的主要目的为提供一种浏览器待故障分析的脚本信息的获取方法及装置,有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
本发明提出一种浏览器待故障分析的脚本信息的获取方法,该方法包括:
在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;
在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
优选地,所述在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括:
在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令;
从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
优选地,所述在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括:
逐条分析所述操作事件运行的脚本指令是否为函数指令;
在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令;
在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,并从分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
优选地,所述对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息的步骤之后,该方法还包括:
输出解析出的预设类型信息。
优选地,所述输出解析出的预设类型信息的步骤包括:
当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;
当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
本发明还提出一种浏览器待故障分析的脚本信息的获取装置,该装置包括:
响应模块,用于在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;
处理模块,用于在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
数据解析模块,用于对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
优选地,所述数据解析模块,还用于在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令;
所述处理模块,用于从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
优选地,该装置还包括分析模块,
所述分析模块,用于逐条分析所述操作事件运行的脚本指令是否为函数指令;
所述处理模块,用于在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令;
所述分析模块,还用于在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令;
所述处理模块,还用于从分析模块分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
优选地,该装置还包括数据输出模块,
所述数据输出模块,用于输出解析出的预设类型信息。
优选地,所述分析模块,用于当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容;
所述数据输出模块,用于在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;及
当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
相对现有技术,本发明在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
附图说明
图1为本发明浏览器待故障分析的脚本信息的获取方法的第一实施例的流程示意图;
图2为本发明浏览器待故障分析的脚本信息的获取方法的第二实施例的流程示意图;
图3为本发明浏览器待故障分析的脚本信息的获取装置的第一实施例的功能模块示意图;
图4为本发明浏览器待故障分析的脚本信息的获取装置的第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,为本发明浏览器待故障分析的脚本信息的获取方法的第一实施例的流程示意图。
需要强调的是:图1所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
以下是本实施例逐步实现获取浏览器待故障分析的脚本信息的具体步骤:
步骤S11,在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作。
具体的,本实施例中优选为通过浏览器实现获取浏览器待故障分析的脚本信息的具体步骤,该浏览器进一步地优选为智能电视加载的浏览器。当浏览器出现故障时,用户通过网络登录到智能电视***,并向浏览器发送一个浏览器待故障分析的脚本信息获取指令。浏览器在接收到用户发出的浏览器待故障分析的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,即,浏览器在侦测到用户重现浏览器发生故障的全过程的操作时,监控用户重现浏览器发生故障的全过程的操作,获取并分析用户该操作过程中,浏览器运行的脚本指令。
步骤S12,在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
步骤S13,对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
具体的,浏览器在监控到所述操作事件时,开始下载在所述操作事件中运行的页面脚本文件,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,将页面脚本文件解析为片段脚本语言字符串,浏览器将解析的片段脚本语言字符串生成语言字节信息,即为脚本语言运行的每条指令,即脚本指令。当所述操作事件的脚本指令逐条运行时,浏览器逐条分析所述操作事件中运行的脚本指令是否为函数指令,若当前分析的所述操作事件运行的脚本指令为函数指令时,则锁定该脚本指令;在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,即逐条分析所述操作事件运行的脚本指令是否为函数指令,在运行的脚本指令为函数指令时,对为函数指令的运行的脚本指令进行锁定,在运行的脚本指令不为函数指令时,分析下一条运行的脚本指令,重复执行分析和锁定的步骤,直至分析完所有所述操作事件运行的脚本指令,从分析的脚本指令中锁定所有为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
在确定锁定的脚本指令对应的函数时,对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。所述预设类型信息可以是函数的名称、函数参数或函数的位置信息等。例如,对确定的函数进行解析,以解析出确定的函数对应的函数名称,或以解析出确定的函数对应的函数参数,或以解析出确定的函数对应函数的位置信息。解析出的预设类型信息包括上述预设类型信息中的一种或者多种组合,本实施例中预设类型信息优选为上述三种预设类型信息的组合,即对确定的函数进行解析,以解析出确定的函数对应的函数名称、函数参数及函数的位置信息。所述函数的位置信息包括但不限于该函数所在文件的名称、所在文件的位置及该函数在该文件中的行数。
本实施例在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
如图2所示,为本发明浏览器待故障分析的脚本信息的获取方法的第一实施例的流程示意图。
基于上述第一实施例,在步骤S13之后,该方法还包括:
步骤S14,输出解析出的预设类型信息。
具体的,浏览器在对确定的函数进行解析,以解析出确定的函数对应的预设类型信息之后,其中,解析出的预设类型信息即为待故障分析的脚本信息,输出解析出的预设类型信息。所述输出的方式包括但不限于将解析出的预设类型信息保存至预存目的地址、显示解析出的预设类型信息或将解析出的预设类型信息发送至预存目的端。所述预存目的地址可以是根据用户指令预先设置的智能电视的一个存储区域;所述显示解析出的预设类型信息的方式可以是文字、图片或者声音等;所述预存目的端可以是邮箱地址、微信号码或微博账号等。
所述输出解析出的预设类型信息的步骤包括:当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。所述预设类型信息为函数的名称、函数参数及函数的位置信息等。
在一优选的实施例中,为了进一步的方便开发人员快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度,在输出解析出的预设类型信息之前,该方法还包括步骤:
对解析出的预设类型信息进行预设方式的处理,输出处理后的预设类型信息。所述预设方式的处理包括但不限于对预设类型信息中包括的不必要的信息进行删除。例如,解析得到函数所在文件的名称和进入该文件的路径,如果路径信息过长且包括一些不必要的信息,则将路径信息中不必要的信息删除,得到该函数在所在文件中的具***置。若所述预设类型信息包括函数的名称、函数参数及函数的位置信息,则输出该函数的名称、函数参数及函数的位置信息。
具体的,若锁定的脚本指令为自定义函数指令,则浏览器根据运行的脚本指令的上下文信息,在解析后的脚本指令中找出对应的函数关系存储对象,在该对象中获取当前锁定的脚本指令的函数关系表,进而获取到当前锁定的脚本指令的预设类型信息,保存函数的输入参数值,由浏览器在解析当前锁定的脚本指令的预设类型信息中读取对应的函数名称,如果存在则直接保存,如果不存在说明该函数可能在脚本文件中属于回调函数或者直接运行函数,没有函数名,浏览器直接产生默认函数名称;根据当前锁定的脚本指令的预设类型信息的解析内容,获取上下文中该函数所在文件的名称和路径信息,如果路径信息过长并且有一些不必要的参数信息,将路径信息中不必要的信息删除,然后计算该函数所在文件中的具***置信息,最后分析是否需要输出函数的代码内容,若需要输出该函数代码内容,则根据串口输出最大的字节数进行循环打印输出并将所有的函数名称、函数参数、文件名称和路径信息、函数位置信息输出。例如,自定义的一个脚本文件中的函数为init,浏览器输出的解析后的脚本信息为:函数的名称为init,函数所在的文件的额路径信息是:/tclbw/tv/HTMLUI/volume.html,行号开始87行,结束91行,函数内容在code里面:[JAVASCRIPT]:--function init(),
file</tclbw/tv/HTMLUI/volume.html>,line[87-91],
code={volume=top.g_channel.volume;$("volume_name").innerHTML=volumeName;$("scan_progress_img").style.width=parseInt(volume*690/100)+"px";}。
若锁定的脚本指令为浏览器本地函数指令,则浏览器确定实现该函数功能的函数功能代码,对确定的函数进行解析,以解析出对应的预设类型信息,保存该函数的输入参数信息和该函数的名称,根据该函数解析出的预设类型信息获取该函数的上下文,确定该函数所在文件的名称和路径信息,如果路径信息过长并且有一些不必要的参数信息,将路径信息中不必要的信息删除,然后计算该函数所在文件中的具***置信息,将解析出的所有浏览器本地函数的名称、函数参数及函数的位置信息输出。例如,假设当前执行的脚本指令在文件volume.html中,该函数所在的文件的全部路径是:
http://192.168.0.119/tclbw/tv/volume.html?a=1,b=3,c=3,idd=333,revert=09,in fo=imsogre,class=dsfgd.jsss,coolkie=3333,在该文件中当前执行的脚本代码是:
$("scan_progress_img").style.width=parseInt(volume*690/100)+"px";
parseInt为浏览器***的本地函数,浏览器对预设类型信息解析得出该函数所在的文件是volume.html,路径是:
http://192.168.0.119/tclbw/tv/volume.html?a=1,b=3,c=3,idd=333,revert=09,in fo=imsogre,class=dsfgd.jsss,coolkie=3333,
经过对路径优化得到现任路径/tclbw/tv/volume.html(问号代表链接附加的一些额外数据信息,192.168.0.119地址信息无用,打印信息越多可能导致信息丢失),浏览器在对解析后的预设类型信息进行预设方式的处理后,即将路径信息中的无用信息进行删除后,确定输出的脚本信息是:
[JAVASCRIPT]:--function parseInt(value,command)[native],file</tclbw/tv/volume.html>,line[88],即该parseInt函数所在文件volume.html在/tclbw/tv/volume.html中,该parseInt函数在文件volume.html的88行。
本实施例通过对解析出的预设类型信息进行预设方式的处理,以更加准确、有效的输出待故障分析的脚本信息,以使开发人员能直接、有效的找到浏览器故障待分析的脚本信息。进一步有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
如图3所示,为本发明浏览器待故障分析的脚本信息的获取装置的第一实施例的功能模块示意图。该装置包括响应模块10、处理模块20、数据解析模块30及分析模块40,
所述响应模块10,用于在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作。
具体的,本实施例中浏览器待故障分析的脚本信息的获取装置优选为浏览器,该浏览器进一步地优选为智能电视加载的浏览器。当浏览器出现故障时,用户通过网络登录到智能电视***,并向浏览器发送一个浏览器待故障分析的脚本信息获取指令。在接收到用户发出的浏览器待故障分析的脚本信息获取指令时,响应模块10响应该指令以监控用户对浏览器的操作事件,即,响应模块10在侦测到用户重现浏览器发生故障的全过程的操作时,监控用户重现浏览器发生故障的全过程的操作,获取并分析用户该操作过程中,浏览器运行的脚本指令。
所述处理模块20,用于在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
所述数据解析模块30,用于对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
具体的,处理模块20在监控到所述操作事件时,开始下载在所述操作事件中运行的页面脚本文件,数据解析模块30对所述操作事件运行的页面脚本文件进行词法解析和语法解析,将页面脚本文件解析为片段脚本语言字符串,将解析的片段脚本语言字符串生成语言字节信息,即为脚本语言运行的每条指令,即脚本指令。当所述操作事件的脚本指令逐条运行时,分析模块40逐条分析运行的脚本指令是否为函数指令,当前分析的所述操作事件运行的脚本指令为函数指令时,处理模块20锁定该脚本指令;在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析模块40分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,即分析模块40逐条分析所述操作事件运行的脚本指令是否为函数指令,处理模块20在运行的脚本指令为函数指令时,对为函数指令的运行的脚本指令进行锁定,在运行的脚本指令不为函数指令时,分析模块40分析下一条运行的脚本指令,重复执行分析和锁定的过程,直至分析模块40分析完所有所述操作事件运行的脚本指令,处理模块20从分析的脚本指令中锁定所有为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
在确定锁定的脚本指令对应的函数时,数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。所述预设类型可以是函数的名称、函数参数或函数的位置信息等。例如,数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的函数名称,或以解析出确定的函数对应的函数参数,或以解析出确定的函数对应函数的位置信息。解析出的预设类型信息包括上述预设类型信息中的一种或者多种组合,本实施例中预设类型信息优选为上述三种预设类型信息的组合,即数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的函数名称、函数参数及函数的位置信息。所述函数的位置信息包括但不限于该函数所在文件的名称及该函数在该文件中的行数。
本实施例在接收到用户发出的浏览器故障的脚本信息获取指令时,响应模块10响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,处理模块20在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
如图4所示,为本发明浏览器待故障分析的脚本信息的获取装置的第二实施例的功能模块示意图。该装置还包括输出模块50,
所述数据输出模块50,用于输出解析出的预设类型信息。
具体的,数据解析模块30在对确定的函数进行解析,以解析出确定的函数对应的预设类型信息之后,其中,解析出的预设类型信息即为待故障分析的脚本信息,输出模块50输出解析出的预设类型信息。所述输出模块50输出预设类型信息的方式包括但不限于将解析出的预设类型信息保存至预存目的地址、显示解析出的预设类型信息或将解析出的预设类型信息发送至预存目的端。所述预存目的地址可以是根据用户指令预先设置的智能电视的一个存储区域;所述显示解析出的预设类型信息的方式可以是文字、图片或者声音等;所述预存目的端可以是邮箱地址、微信号码或微博账号等。
所述输出模块50输出解析出的预设类型信息的过程包括:当锁定的脚本指令为自定义函数指令时,分析模块40分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出模块50输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出模块50输出解析出的预设类型信息;当锁定的脚本指令为浏览器本地函数指令时,输出模块50输出解析出的预设类型信息。
在一优选的实施例中,为了进一步的方便开发人员快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度,在输出模块50输出解析出的预设类型信息之前,处理模块20对解析出的预设类型信息进行预设方式的处理,输出模块50输出处理后的预设类型信息。所述预设方式的处理包括但不限于对预设类型信息中包括的不必要的信息进行删除。例如,数据解析模块30解析得到函数所在文件的名称和进入该文件的路径,若路径信息过长且包括一些不必要的信息,则处理模块20将路径信息中不必要的信息删除,得到该函数在所在文件中的具***置。若所述预设类型信息包括函数的名称、函数参数及函数的位置信息,则输出模块50输出该函数的名称、函数参数及函数的位置信息。
具体的,若锁定的脚本指令为自定义函数指令,则处理模块20根据运行的脚本指令的上下文信息,在解析后的脚本指令中找出对应的函数关系存储对象,在该对象中获取当前锁定的脚本指令的函数关系表,进而获取到当前锁定的脚本指令的预设类型信息,保存函数的输入参数值,由处理模块20在解析当前锁定的脚本指令的预设类型信息中读取对应的函数名称,如果存在则直接保存,如果不存在说明该函数可能在脚本文件中属于回调函数或者直接运行函数,没有函数名,处理模块20直接产生默认函数名称;数据解析模块30根据当前锁定的脚本指令的预设类型信息的解析内容,获取上下文中该函数所在文件的名称和路径信息,若路径信息过长并且有一些不必要的参数信息,则处理模块20将路径信息中不必要的信息删除,然后计算该函数所在文件中的具***置信息,最后分析模块40分析是否需要输出函数的代码内容,若需要输出该函数代码内容,则输出模块50根据串口输出最大的字节数进行循环打印输出并将所有的函数名称、函数参数、文件名称和路径信息、函数位置信息输出。例如,自定义的一个脚本文件中的函数为init,输出模块50输出的数据解析模块30解析后的脚本信息为:函数的名称为init,函数所在的文件的额路径信息是:/tclbw/tv/HTMLUI/volume.html,行号开始87行,结束91行,函数内容在code里面:[JAVASCRIPT]:--function
init(),file</tclbw/tv/HTMLUI/volume.html>,line[87-91],code={volume=top.g_channel.volume;$("volume_name").innerHTML=volumeName;$("scan_progress_img").style.width=parseInt(volume*690/100)+"px";}。
若锁定的脚本指令为浏览器本地函数指令,则数据解析模块30确定实现该函数功能的函数功能代码,对确定的函数进行解析,以解析出对应的预设类型信息,保存该函数的输入参数信息和该函数的名称,根据该函数解析出的预设类型信息获取该函数的上下文,确定该函数所在文件的名称和路径信息,若路径信息过长并且有一些不必要的参数信息,则处理模块20将路径信息中不必要的信息删除,然后计算该函数所在文件中的具***置信息,输出模块50将解析出的所有浏览器本地函数的名称、函数参数及函数的位置信息输出。例如,假设当前执行的脚本指令在文件volume.html中,该函数所在的文件的全部路径是:
http://192.168.0.119/tclbw/tv/volume.html?a=1,b=3,c=3,idd=333,revert=09,in fo=imsogre,class=dsfgd.jsss,coolkie=3333,在该文件中当前执行的脚本代码是:
$("scan_progress_img").style.width=parseInt(volume*690/100)+"px";
parseInt为浏览器***的本地函数,数据解析模块30对预设类型信息解析得出该函数所在的文件是volume.html,路径是:
http://192.168.0.119/tclbw/tv/volume.html?a=1,b=3,c=3,idd=333,revert=09,in fo=imsogre,class=dsfgd.jsss,coolkie=3333,
经过处理模块20对路径优化得到现任路径/tclbw/tv/volume.html(问号代表链接附加的一些额外数据信息,192.168.0.119地址信息无用,打印信息越多可能导致信息丢失),处理模块20在对解析后的预设类型信息进行预设方式的处理后,即将路径信息中的无用信息进行删除后,确定输出模块50输出的输出的脚本信息是:
[JAVASCRIPT]:--function parseInt(value,command)[native],file</tclbw/tv/volume.html>,line[88],即该parseInt函数所在文件volume.html在/tclbw/tv/volume.html中,该parseInt函数在文件volume.html的88行。
本实施例通过处理模块20对解析出的预设类型信息进行预设方式的处理,以更加准确、有效的输出待故障分析的脚本信息,以使开发人员能直接、有效的找到浏览器故障待分析的脚本信息。进一步有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种浏览器待故障分析的脚本信息的获取方法,其特征在于,该方法包括:
在接收到用户发出的浏览器故障脚本信息的获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;
在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息;
当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息;
当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
2.根据权利要求1所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括:
在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令;
从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
3.根据权利要求1或2所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括:
逐条分析所述操作事件运行的脚本指令是否为函数指令;
在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令;
在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,并从分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
4.根据权利要求1所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容的步骤之后,还包括:
在不需要输出函数的代码内容时,输出解析出的预设类型信息。
5.一种浏览器待故障分析的脚本信息的获取装置,其特征在于,该装置包括:
响应模块,用于在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;
处理模块,用于在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
数据解析模块,用于对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息;
该装置还包括数据输出模块,
所述分析模块,用于当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容;
所述数据输出模块,用于在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息;及
当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
6.根据权利要求5所述的浏览器待故障分析的脚本信息的获取装置,其特征在于,
所述数据解析模块,还用于在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令;
所述处理模块,用于从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
7.根据权利要求5或6所述的浏览器待故障分析的脚本信息的获取装置,其特征在于,该装置还包括分析模块,
所述分析模块,用于逐条分析的所述操作事件运行的脚本指令是否为函数指令;
所述处理模块,用于在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令;
所述分析模块,还用于在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令;
所述处理模块,还用于从分析模块分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
8.根据权利要求5所述的浏览器待故障分析的脚本信息的获取装置,其特征在于,
所述数据输出模块,还用于在不需要输出函数的代码内容时,输出解析出的预设类型信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310719022.9A CN103678134B (zh) | 2013-12-23 | 2013-12-23 | 浏览器待故障分析的脚本信息的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310719022.9A CN103678134B (zh) | 2013-12-23 | 2013-12-23 | 浏览器待故障分析的脚本信息的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678134A CN103678134A (zh) | 2014-03-26 |
CN103678134B true CN103678134B (zh) | 2017-11-03 |
Family
ID=50315768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310719022.9A Expired - Fee Related CN103678134B (zh) | 2013-12-23 | 2013-12-23 | 浏览器待故障分析的脚本信息的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678134B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109462490B (zh) * | 2017-09-06 | 2022-08-05 | 杭州海康威视***技术有限公司 | 视频监控***及故障分析方法 |
CN113127250B (zh) * | 2021-04-28 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 一种故障上报方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662387A (zh) * | 2009-10-14 | 2010-03-03 | 中国电信股份有限公司 | 一种检测网络中计算机接入状态的***及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8717374B2 (en) * | 2010-09-13 | 2014-05-06 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to display process control information |
CN103019733B (zh) * | 2012-12-25 | 2016-07-06 | 北京奇虎科技有限公司 | 一种用于浏览器的活动对象执行方法、***及浏览器 |
-
2013
- 2013-12-23 CN CN201310719022.9A patent/CN103678134B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662387A (zh) * | 2009-10-14 | 2010-03-03 | 中国电信股份有限公司 | 一种检测网络中计算机接入状态的***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103678134A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824691B2 (en) | Page rendering method, device, and data storage medium | |
US6952800B1 (en) | Arrangement for controlling and logging voice enabled web applications using extensible markup language documents | |
CN111142988B (zh) | 页面测试方法、装置、存储介质及电子设备 | |
US8543869B2 (en) | Method and system for reconstructing error response messages under web application environment | |
US8468145B2 (en) | Indexing of URLs with fragments | |
US7353225B2 (en) | Mechanism for comparing content in data structures | |
US20070016897A1 (en) | Methods, apparatus and computer programs for optimized parsing and service invocation | |
CN108572819A (zh) | 页面更新方法、装置、终端及计算机可读存储介质 | |
CN110286917A (zh) | 文件打包方法、装置、设备及存储介质 | |
CN109144567B (zh) | 跨平台的网页渲染方法、装置、服务器及存储介质 | |
US20040268249A1 (en) | Document transformation | |
CN111274781A (zh) | 表格显示方法、装置、存储介质及电子设备 | |
CN110333863A (zh) | 一种生成、显示小程序页面的方法及装置 | |
CN113382083B (zh) | 一种网页截图方法和装置 | |
CN112181477B (zh) | 复杂事件处理方法、装置及终端设备 | |
CN110059278A (zh) | Web页面配置方法、服务器及计算机可读存储介质 | |
US7953886B2 (en) | Method and system of receiving and translating CLI command data within a routing system | |
CN103678134B (zh) | 浏览器待故障分析的脚本信息的获取方法及装置 | |
US11768759B2 (en) | Method and system for automated testing of web service APIs | |
CN107800552A (zh) | 一种数据交互方法及装置 | |
US20060075069A1 (en) | Method and system to provide message communication between different application clients running on a desktop | |
CN107026854B (zh) | 漏洞验证方法及装置 | |
CN111800379A (zh) | 一种基于Lua的工控私有协议检测方法及装置 | |
CN110275701A (zh) | 数据处理方法、装置、介质和计算设备 | |
EP3502925A1 (en) | Computer system and method for extracting dynamic content from websites |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171103 |