浏览器待故障分析的脚本信息的获取方法及装置制造方法

文档序号:6525256阅读:165来源:国知局
浏览器待故障分析的脚本信息的获取方法及装置制造方法
【专利摘要】本发明公开了一种浏览器待故障分析的脚本信息的获取方法及装置,本发明在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
【专利说明】浏览器待故障分析的脚本信息的获取方法及装置
【技术领域】
[0001]本发明涉及到智能终端浏览器故障处理领域,特别涉及到一种浏览器待故障分析的脚本信息的获取方法及装置。
【背景技术】
[0002]随着智能终端(例如,智能电视)的快速发展,人们对智能电视要求越来越高,由此业务系统引入的业务应用也越来越多,而这些业务的呈现都需要通过智能电视的浏览器来实现,即需要嵌入式浏览器支持的功能越来越复杂,例如,HTML5音视频播放、3D页面显示、Widget应用、多窗口展示及网络离线存储等新业务应用的迅速推广。大量的业务应用都是通过网页设计(页面逻辑控制)进行实现,而网页设计主要是由脚本语言来完成,越复杂的业务应用就需要多样化和复杂话的页面逻辑控制来完成,因此,脚本语言(例如,javascript)在网页设计中就越来越重要。脚本语言的执行都是通过浏览器进行,所以复杂的脚本逻辑一旦出现问题,将直接导致用户无法正常的访问页面,极大的降低了用户的体验度。同时,如果脚本逻辑出现问题,就需要浏览器开发人员对业务应用实现的脚本语言进行定位分析,找出利用脚本语言无法实现业务应用的原因,但是复杂的页面和脚本语言让浏览器开发人员不知道从何开始入手分析。
[0003]目前,浏览器开发人员对业务应用实现的脚本语言进行定位分析的方式通常为:由浏览器开发人员对页面和脚本语言进行重新组合链接,让浏览器进行脚本逻辑问题的重现,并在脚本语言中盲目的添加大量打印信息,然后通过查看脚本语言中添加的打印信息,找到脚本语言执行的方式和路径,如果打印信息添加的有误,还需要反复的进行这样的操作。
[0004]因而,上述定位分析的方式极大的浪费了开发人员的时间,且无法准确的对出现问题的脚本语言的执行逻辑进行定位,降低了解决浏览器故障的速度。

【发明内容】

[0005]本发明的主要目的为提供一种浏览器待故障分析的脚本信息的获取方法及装置,有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
[0006]本发明提出一种浏览器待故障分析的脚本信息的获取方法,该方法包括:
[0007]在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;
[0008]在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
[0009]对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
[0010]优选地,所述在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括:
[0011]在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令;
[0012]从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
[0013]优选地,所述在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括:
[0014]逐条分析所述操作事件运行的脚本指令是否为函数指令;
[0015]在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令;
[0016]在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,并从分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
[0017]优选地,所述对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息的步骤之后,该方法还包括:
[0018]输出解析出的预设类型信息。
[0019]优选地,所述输出解析出的预设类型信息的步骤包括:
[0020]当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;
[0021]当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
[0022]本发明还提出一种浏览器待故障分析的脚本信息的获取装置,该装置包括:
[0023]响应模块,用于在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;
[0024]处理模块,用于在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
[0025]数据解析模块,用于对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
[0026]优选地,所述数据解析模块,还用于在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令;
[0027]所述处理模块,用于从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
[0028]优选地,该装置还包括分析模块,
[0029]所述分析模块,用于逐条分析所述操作事件运行的脚本指令是否为函数指令;
[0030]所述处理模块,用于在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令;
[0031]所述分析模块,还用于在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令;
[0032]所述处理模块,还用于从分析模块分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
[0033]优选地,该装置还包括数据输出模块,
[0034]所述数据输出模块,用于输出解析出的预设类型信息。
[0035]优选地,所述分析模块,用于当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容;
[0036]所述数据输出模块,用于在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;及
[0037]当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
[0038]相对现有技术,本发明在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
【专利附图】

【附图说明】
[0039]图1为本发明浏览器待故障分析的脚本信息的获取方法的第一实施例的流程示意图;
[0040]图2为本发明浏览器待故障分析的脚本信息的获取方法的第二实施例的流程示意图;
[0041]图3为本发明浏览器待故障分析的脚本信息的获取装置的第一实施例的功能模块不意图;
[0042]图4为本发明浏览器待故障分析的脚本信息的获取装置的第二实施例的功能模块不意图。
[0043]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。【具体实施方式】
[0044]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0045]如图1所示,为本发明浏览器待故障分析的脚本信息的获取方法的第一实施例的流程示意图。
[0046]需要强调的是:图1所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
[0047]在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
[0048]以下是本实施例逐步实现获取浏览器待故障分析的脚本信息的具体步骤:
[0049]步骤S11,在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作。
[0050]具体的,本实施例中优选为通过浏览器实现获取浏览器待故障分析的脚本信息的具体步骤,该浏览器进一步地优选为智能电视加载的浏览器。当浏览器出现故障时,用户通过网络登录到智能电视系统,并向浏览器发送一个浏览器待故障分析的脚本信息获取指令。浏览器在接收到用户发出的浏览器待故障分析的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,即,浏览器在侦测到用户重现浏览器发生故障的全过程的操作时,监控用户重现浏览器发生故障的全过程的操作,获取并分析用户该操作过程中,浏览器运行的脚本指令。
[0051]步骤S12,在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
[0052]步骤S13,对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
[0053]具体的,浏览器在监控到所述操作事件时,开始下载在所述操作事件中运行的页面脚本文件,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,将页面脚本文件解析为片段脚本语言字符串,浏览器将解析的片段脚本语言字符串生成语言字节信息,即为脚本语言运行的每条指令,即脚本指令。当所述操作事件的脚本指令逐条运行时,浏览器逐条分析所述操作事件中运行的脚本指令是否为函数指令,若当前分析的所述操作事件运行的脚本指令为函数指令时,则锁定该脚本指令;在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,即逐条分析所述操作事件运行的脚本指令是否为函数指令,在运行的脚本指令为函数指令时,对为函数指令的运行的脚本指令进行锁定,在运行的脚本指令不为函数指令时,分析下一条运行的脚本指令,重复执行分析和锁定的步骤,直至分析完所有所述操作事件运行的脚本指令,从分析的脚本指令中锁定所有为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
[0054]在确定锁定的脚本指令对应的函数时,对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。所述预设类型信息可以是函数的名称、函数参数或函数的位置信息等。例如,对确定的函数进行解析,以解析出确定的函数对应的函数名称,或以解析出确定的函数对应的函数参数,或以解析出确定的函数对应函数的位置信息。解析出的预设类型信息包括上述预设类型信息中的一种或者多种组合,本实施例中预设类型信息优选为上述三种预设类型信息的组合,即对确定的函数进行解析,以解析出确定的函数对应的函数名称、函数参数及函数的位置信息。所述函数的位置信息包括但不限于该函数所在文件的名称、所在文件的位置及该函数在该文件中的行数。
[0055]本实施例在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
[0056]如图2所示,为本发明浏览器待故障分析的脚本信息的获取方法的第一实施例的流程示意图。
[0057]基于上述第一实施例,在步骤S13之后,该方法还包括:
[0058]步骤S14,输出解析出的预设类型信息。
[0059]具体的,浏览器在对确定的函数进行解析,以解析出确定的函数对应的预设类型信息之后,其中,解析出的预设类型信息即为待故障分析的脚本信息,输出解析出的预设类型信息。所述输出的方式包括但不限于将解析出的预设类型信息保存至预存目的地址、显示解析出的预设类型信息或将解析出的预设类型信息发送至预存目的端。所述预存目的地址可以是根据用户指令预先设置的智能电视的一个存储区域;所述显示解析出的预设类型信息的方式可以是文字、图片或者声音等;所述预存目的端可以是邮箱地址、微信号码或微博账号等。
[0060]所述输出解析出的预设类型信息的步骤包括:当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。所述预设类型信息为函数的名称、函数参数及函数的位置信息等。
[0061]在一优选的实施例中,为了进一步的方便开发人员快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度,在输出解析出的预设类型信息之前,该方法还包括步骤:
[0062]对解析出的预设类型信息进行预设方式的处理,输出处理后的预设类型信息。所述预设方式的处理包括但不限于对预设类型信息中包括的不必要的信息进行删除。例如,解析得到函数所在文件的名称和进入该文件的路径,如果路径信息过长且包括一些不必要的信息,则将路径信息中不必要的信息删除,得到该函数在所在文件中的具体位置。若所述预设类型信息包括函数的名称、函数参数及函数的位置信息,则输出该函数的名称、函数参数及函数的位置信息。
[0063]具体的,若锁定的脚本指令为自定义函数指令,则浏览器根据运行的脚本指令的上下文信息,在解析后的脚本指令中找出对应的函数关系存储对象,在该对象中获取当前锁定的脚本指令的函数关系表,进而获取到当前锁定的脚本指令的预设类型信息,保存函数的输入参数值,由浏览器在解析当前锁定的脚本指令的预设类型信息中读取对应的函数名称,如果存在则直接保存,如果不存在说明该函数可能在脚本文件中属于回调函数或者直接运行函数,没有函数名,浏览器直接产生默认函数名称;根据当前锁定的脚本指令的预设类型信息的解析内容,获取上下文中该函数所在文件的名称和路径信息,如果路径信息过长并且有一些不必要的参数信息,将路径信息中不必要的信息删除,然后计算该函数所在文件中的具体位置信息,最后分析是否需要输出函数的代码内容,若需要输出该函数代码内容,则根据串口输出最大的字节数进行循环打印输出并将所有的函数名称、函数参数、文件名称和路径信息、函数位置信息输出。例如,自定义的一个脚本文件中的函数为init,浏览器输出的解析后的脚本信息为:函数的名称为init,函数所在的文件的额路径信息是:/tclbw/tv/HTMLUI/volume, html,行号开始87行,结束91行,函数内容在code里面:[JAVASCRIPT]:—function init (),
[0064]file</tclbw/tv/HTMLUI/volume.html>, line[87-91],
[0065]code={volume=top.g_channel.volume;$("volume—name").1nnerHTML=voIumeName;$(〃scan_progress_img〃).style.width=parselnt(volume氺690/100)+〃px〃;}。
[0066]若锁定的脚本指令为浏览器本地函数指令,则浏览器确定实现该函数功能的函数功能代码,对确定的函 数进行解析,以解析出对应的预设类型信息,保存该函数的输入参数信息和该函数的名称,根据该函数解析出的预设类型信息获取该函数的上下文,确定该函数所在文件的名称和路径信息,如果路径信息过长并且有一些不必要的参数信息,将路径信息中不必要的信息删除,然后计算该函数所在文件中的具体位置信息,将解析出的所有浏览器本地函数的名称、函数参数及函数的位置信息输出。例如,假设当前执行的脚本指令在文件volume, html中,该函数所在的文件的全部路径是:
[0067]http://192.168.0.119/tclbw/tv/volume.html?a=l, b=3, c=3, idd=333, revert=09, in fo=imsogre, class=dsfgd.jsss, coolkie=3333,在该文件中当前执行的脚本代码是:
[0068]$("scan_progress_img").style.width=parselnt(volume*690/100)+"px";
[0069]parselnt为浏览器系统的本地函数,浏览器对预设类型信息解析得出该函数所在的文件是volume, html,路径是:
[0070]http://192.168.0.119/tclbw/tv/volume.html?a=l, b=3, c=3, idd=333, revert=09, in fo=imsogre, class=dsfgd.jsss, coolkie=3333,
[0071]经过对路径优化得到现任路径/tclbw/tv/volume.html (问号代表链接附加的一些额外数据信息,192.168.0.119地址信息无用,打印信息越多可能导致信息丢失),浏览器在对解析后的预设类型信息进行预设方式的处理后,即将路径信息中的无用信息进行删除后,确定输出的脚本信息是:
[0072][JAVASCRIPT]:—function parselnt (value, command)[native], file</tclbw/tv/volume.html>, line [88],即该 parselnt 函数所在文件 volume, html 在 /tclbw/tv/volume, html 中,该 parselnt 函数在文件 volume, html 的 88 行。
[0073]本实施例通过对解析出的预设类型信息进行预设方式的处理,以更加准确、有效的输出待故障分析的脚本信息,以使开发人员能直接、有效的找到浏览器故障待分析的脚本信息。进一步有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
[0074]如图3所示,为本发明浏览器待故障分析的脚本信息的获取装置的第一实施例的功能模块示意图。该装置包括响应模块10、处理模块20、数据解析模块30及分析模块40,
[0075]所述响应模块10,用于在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作。[0076]具体的,本实施例中浏览器待故障分析的脚本信息的获取装置优选为浏览器,该浏览器进一步地优选为智能电视加载的浏览器。当浏览器出现故障时,用户通过网络登录到智能电视系统,并向浏览器发送一个浏览器待故障分析的脚本信息获取指令。在接收到用户发出的浏览器待故障分析的脚本信息获取指令时,响应模块10响应该指令以监控用户对浏览器的操作事件,即,响应模块10在侦测到用户重现浏览器发生故障的全过程的操作时,监控用户重现浏览器发生故障的全过程的操作,获取并分析用户该操作过程中,浏览器运行的脚本指令。
[0077]所述处理模块20,用于在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;
[0078]所述数据解析模块30,用于对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
[0079]具体的,处理模块20在监控到所述操作事件时,开始下载在所述操作事件中运行的页面脚本文件,数据解析模块30对所述操作事件运行的页面脚本文件进行词法解析和语法解析,将页面脚本文件解析为片段脚本语言字符串,将解析的片段脚本语言字符串生成语言字节信息,即为脚本语言运行的每条指令,即脚本指令。当所述操作事件的脚本指令逐条运行时,分析模块40逐条分析运行的脚本指令是否为函数指令,当前分析的所述操作事件运行的脚本指令为函数指令时,处理模块20锁定该脚本指令;在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析模块40分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,即分析模块40逐条分析所述操作事件运行的脚本指令是否为函数指令,处理模块20在运行的脚本指令为函数指令时,对为函数指令的运行的脚本指令进行锁定,在运行的脚本指令不为函数指令时,分析模块40分析下一条运行的脚本指令,重复执行分析和锁定的过程,直至分析模块40分析完所有所述操作事件运行的脚本指令,处理模块20从分析的脚本指令中锁定所有为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
[0080]在确定锁定的脚本指令对应的函数时,数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。所述预设类型可以是函数的名称、函数参数或函数的位置信息等。例如,数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的函数名称,或以解析出确定的函数对应的函数参数,或以解析出确定的函数对应函数的位置信息。解析出的预设类型信息包括上述预设类型信息中的一种或者多种组合,本实施例中预设类型信息优选为上述三种预设类型信息的组合,即数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的函数名称、函数参数及函数的位置信息。所述函数的位置信息包括但不限于该函数所在文件的名称及该函数在该文件中的行数。
[0081]本实施例在接收到用户发出的浏览器故障的脚本信息获取指令时,响应模块10响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作;在监控到所述操作事件时,处理模块20在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数;数据解析模块30对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
[0082]如图4所示,为本发明浏览器待故障分析的脚本信息的获取装置的第二实施例的功能模块示意图。该装置还包括输出模块50,
[0083]所述数据输出模块50,用于输出解析出的预设类型信息。
[0084]具体的,数据解析模块30在对确定的函数进行解析,以解析出确定的函数对应的预设类型信息之后,其中,解析出的预设类型信息即为待故障分析的脚本信息,输出模块50输出解析出的预设类型信息。所述输出模块50输出预设类型信息的方式包括但不限于将解析出的预设类型信息保存至预存目的地址、显示解析出的预设类型信息或将解析出的预设类型信息发送至预存目的端。所述预存目的地址可以是根据用户指令预先设置的智能电视的一个存储区域;所述显示解析出的预设类型信息的方式可以是文字、图片或者声音等;所述预存目的端可以是邮箱地址、微信号码或微博账号等。
[0085]所述输出模块50输出解析出的预设类型信息的过程包括:当锁定的脚本指令为自定义函数指令时,分析模块40分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出模块50输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出模块50输出解析出的预设类型信息;当锁定的脚本指令为浏览器本地函数指令时,输出模块50输出解析出的预设类型信息。
[0086]在一优选的实施例中,为了进一步的方便开发人员快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度,在输出模块50输出解析出的预设类型信息之前,处理模块20对解析出的预设类型信息进行预设方式的处理,输出模块50输出处理后的预设类型信息。所述预设方式的处理包括但不限于对预设类型信息中包括的不必要的信息进行删除。例如,数据解析模块30解析得到函数所在文件的名称和进入该文件的路径,若路径信息过长且包括一些不必要的信息,则处理模块20将路径信息中不必要的信息删除,得到该函数在所在文件中的具体位置。若所述预设类型信息包括函数的名称、函数参数及函数的位置信息,则输出模块50输出该函数的名称、函数参数及函数的位置信肩、O
[0087]具体的,若锁定的脚本指令为自定义函数指令,则处理模块20根据运行的脚本指令的上下文信息,在解析后的脚本指令中找出对应的函数关系存储对象,在该对象中获取当前锁定的脚本指令的函数关系表,进而获取到当前锁定的脚本指令的预设类型信息,保存函数的输入参数值,由处理模块20在解析当前锁定的脚本指令的预设类型信息中读取对应的函数名称,如果存在则直接保存,如果不存在说明该函数可能在脚本文件中属于回调函数或者直接运行函数,没有函数名,处理模块20直接产生默认函数名称;数据解析模块30根据当前锁定的脚本指令的预设类型信息的解析内容,获取上下文中该函数所在文件的名称和路径信息,若路径信息过长并且有一些不必要的参数信息,则处理模块20将路径信息中不必要的信息删除,然后计算该函数所在文件中的具体位置信息,最后分析模块40分析是否需要输出函数的代码内容,若需要输出该函数代码内容,则输出模块50根据串口输出最大的字节数进行循环打印输出并将所有的函数名称、函数参数、文件名称和路径信息、函数位置信息输出。例如,自定义的一个脚本文件中的函数为init,输出模块50输出的数据解析模块30解析后的脚本信息为:函数的名称为init,函数所在的文件的额路径信息是:/tclbw/tv/HTMLUI/volume.html,行号开始87行,结束91行,函数内容在code里面:[JAVASCRIPT]:—function
[0088]init () , f i le< / tclbw / tv/HTMLUI / volume, html >, line [87-91],code={volume=top.g_channel.volume;$(〃volume_name〃).1nnerHTML=voIumeName;$(〃scan_progress_img〃)? style.width=parselnt(volume*690/l00)+"px";}。
[0089]若锁定的脚本指令为浏览器本地函数指令,则数据解析模块30确定实现该函数功能的函数功能代码,对确定的函数进行解析,以解析出对应的预设类型信息,保存该函数的输入参数信息和该函数的名称,根据该函数解析出的预设类型信息获取该函数的上下文,确定该函数所在文件的名称和路径信息,若路径信息过长并且有一些不必要的参数信息,则处理模块20将路径信息中不必要的信息删除,然后计算该函数所在文件中的具体位置信息,输出模块50将解析出的所有浏览器本地函数的名称、函数参数及函数的位置信息输出。例如,假设当前执行的脚本指令在文件volume, html中,该函数所在的文件的全部路径是:
[0090]http://192.168.0.119/tclbw/tv/volume.html?a=l, b=3, c=3, idd=333, revert=09, in fo=imsogre, class=dsfgd.jsss, coolkie=3333,在该文件中当前执行的脚本代码是:
[0091]$("scan_progress_img").style.width=parselnt(volume*690/100)+"px";
[0092]parselnt为浏览器系统的本地函数,数据解析模块30对预设类型信息解析得出该函数所在的文件是volume, html,路径是:
[0093]http://192.168.0.119/tclbw/tv/volume.html?a=l, b=3, c=3, idd=333, revert=09, in fo=imsogre, class=dsfgd.jsss, coolkie=3333,
[0094]经过处理模块20对路径优化得到现任路径/tclbw/tv/volume, html (问号代表链接附加的一些额外数据信息,192.168.0.119地址信息无用,打印信息越多可能导致信息丢失),处理模块20在对解析后的预设类型信息进行预设方式的处理后,即将路径信息中的无用信息进行删除后,确定输出模块50输出的输出的脚本信息是:
[0095][JAVASCRIPT]:—function parselnt (value, command)[native], file</tclbw/tv/volume.html>, line [88],即该 parselnt 函数所在文件 volume, html 在 /tclbw/tv/volume, html 中,该 parselnt 函数在文件 volume, html 的 88 行。
[0096]本实施例通过处理模块20对解析出的预设类型信息进行预设方式的处理,以更加准确、有效的输出待故障分析的脚本信息,以使开发人员能直接、有效的找到浏览器故障待分析的脚本信息。进一步有效避免了浪费开发人员业务应用实现的脚本语言进行定位的时间的问题,快速、准确地对出现问题的脚本语言的执行逻辑进行定位,提高解决浏览器故障的速度。
[0097]以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种浏览器待故障分析的脚本信息的获取方法,其特征在于,该方法包括: 在接收到用户发出的浏览器故障脚本信息的获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作; 在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数; 对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
2.根据权利要求1所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括: 在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令; 从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
3.根据权利要求1或2所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数的步骤包括: 逐条分析所述操作事件运行的脚本指令是否为函数指令;` 在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令; 在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令,并从分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
4.根据权利要求1所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息的步骤之后,该方法还包括: 输出解析出的预设类型信息。
5.根据权利要求4所述的浏览器待故障分析的脚本信息的获取方法,其特征在于,所述输出解析出的预设类型信息的步骤包括: 当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容,在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息; 当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
6.一种浏览器待故障分析的脚本信息的获取装置,其特征在于,该装置包括: 响应模块,用于在接收到用户发出的浏览器故障的脚本信息获取指令时,响应该指令以监控用户对浏览器的操作事件,其中,所述操作事件为重现浏览器发生故障过程的操作; 处理模块,用于在监控到所述操作事件时,在所述操作事件运行的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数; 数据解析模块,用于对确定的函数进行解析,以解析出确定的函数对应的预设类型信息,其中,解析出的预设类型信息即为待故障分析的脚本信息。
7.根据权利要求6所述的浏览器待故障分析的脚本信息的获取装置,其特征在于, 所述数据解析模块,还用于在监控到所述操作事件时,对所述操作事件运行的页面脚本文件进行词法解析和语法解析,以生成对应的脚本指令; 所述处理模块,用于从生成的脚本指令中,锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
8.根据权利要求6或7所述的浏览器待故障分析的脚本信息的获取装置,其特征在于,该装置还包括分析模块, 所述分析模块,用于逐条分析的所述操作事件运行的脚本指令是否为函数指令;所述处理模块,用于在当前分析的所述操作事件运行的脚本指令为函数指令时,锁定该脚本指令; 所述分析模块,还用于在当前分析的所述操作事件当前运行的脚本指令不为函数指令时,分析下一条所述操作事件运行的脚本指令是否为函数指令,直至分析完所有所述操作事件运行的脚本指令; 所述处理模块,还用于从分析模块分析的脚本指令中锁定为函数指令的脚本指令,并确定锁定的脚本指令对应的函数。
9.根据权利要求6所述的浏览器待故障分析的脚本信息的获取装置,其特征在于,该装置还包括数据输出模块, 所述数据输出模块,用于输出解析出的预设类型信息。
10.根据权利要求9所述`的浏览器待故障分析的脚本信息的获取装置,其特征在于, 所述分析模块,用于当锁定的脚本指令为自定义函数指令时,分析是否输出函数的代码内容; 所述数据输出模块,用于在需要输出函数的代码内容时,输出函数的代码内容及解析出的预设类型信息,在不需要输出函数的代码内容时,输出解析出的预设类型信息;及当锁定的脚本指令为浏览器本地函数指令时,输出解析出的预设类型信息。
【文档编号】G06F11/36GK103678134SQ201310719022
【公开日】2014年3月26日 申请日期:2013年12月23日 优先权日:2013年12月23日
【发明者】赵剑萍 申请人:深圳Tcl新技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1