基于JavaScript的脚本调试方法和脚本调试装置制造方法

文档序号:6552385阅读:167来源:国知局
基于JavaScript的脚本调试方法和脚本调试装置制造方法
【专利摘要】本发明提供了一种基于JavaScript的脚本调试方法和一种基于JavaScript的脚本调试装置,其中,所述基于JavaScript的脚本调试方法,包括:获取所有待调试的脚本;根据所述所有待调试的脚本生成集中化脚本;根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同;在所述调试环境下对所述集中化脚本进行调试。通过本发明的技术方案,使得能够对脚本进行集中管理,进而能够便于记录调试信息,同时能够使得脚本在运行过程中也可以进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
【专利说明】基于JavaScript的脚本调试方法和脚本调试装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,具体而言,涉及一种基于JavaScript的脚本调试方法和一种基于JavaScript的脚本调试装置。

【背景技术】
[0002]随着JVM (Java虚拟机)技术的日趋成熟,在JVM内能够运行的语言就不再仅仅是java语言,因此,基于java的应用也不再是仅仅由java语言本身组成,多种编程技术融合共同解决软件问题,已经成为现如今软件行业解决方案的大势所趋。多种编程技术的融合带来的效益是可观的,但是如何能够模拟生产环境进行软件的稳定性、健壮性测试,也是多种编程技术面临的挑战之一。由于在BQ(即用友BQ,是一种商业智能软件)开发过程中采用Java和JavaScript ( 一种客户端脚本语言)技术来解决仪表板部件的交互问题,因此也不得不面对此问题。
[0003]在仪表板项目设计过程中,为提交仪表板部件的灵活性,提升产品竞争能力以及产品可扩展性,决定采用JavaScript作为仪表板部件的交互的驱动器。采用JavaScript提高产品灵活性的好处显而易见,但是问题也随之而来。如何在基于SWT (Standard WidgetToolkit, 一种开源的⑶I编程框架)或者Swing(用于开发Java应用程序用户界面的开发包工具)的容器中,对交互脚本的正确性进行验证?虽然目前市面上JavaScript的调试工具有很多,但是大多数工具的运行环境都依赖浏览器或者基于IDEdntegratedDevelopment Environment,集成开发环境)等,而且几乎所有的调试工具都是针对于Web应用的,即对运行在浏览器或者基于浏览器内核运行的JavaScript程序进行调试,如何对运行在基于SWT或者Swing的容器中的JavaScript进行调试,还没有解决方案。
[0004]因此,如何能够方便地对脚本进行调试,同时提高对脚本调试的灵活性成为亟待解决的技术问题。


【发明内容】

[0005]本发明正是基于上述技术问题,提出了一种新的基于JavaScript的脚本调试方案,使得能够对脚本进行集中管理,进而能够便于记录调试信息,同时能够使得脚本在运行过程中也可以进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
[0006]有鉴于此,本发明提出了一种基于JavaScript的脚本调试方法,包括:获取所有待调试的脚本;根据所述所有待调试的脚本生成集中化脚本;根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同;在所述调试环境下对所述集中化脚本进行调试。
[0007]在该技术方案中,通过根据所有待调试的脚本生成集中化脚本,使得能够对脚本进行集中管理,进而能够便于调试引擎记录调试信息,如当前执行堆栈信息、断点位置信息、对象实时状态信息等。而通过设置调试环境与运行环境相同,使得在脚本运行过程中也可以对脚本进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
[0008]在上述技术方案中,优选地,根据所述所有待调试的脚本生成所述集中化脚本的步骤具体为:初始化所述所有待调试的脚本;读取并解析脚本模板文件;根据初始化后的所述所有待调试的脚本和解析后的所述脚本模板文件生成脚本文件;编译所述脚本文件,以得到所述集中化脚本。
[0009]在上述技术方案中,优选地,还包括:生成脚本执行器,以根据对所述脚本执行器的控制,对启动所述集中化脚本的调试状态或非调试状态进行控制。
[0010]在该技术方案中,通过生成脚本执行器,以对集中化脚本的调试状态进行控制,使得能够对脚本执行器的执行逻辑进行控制,达到既可以调试又可以运行的状态。
[0011]在上述技术方案中,优选地,还包括:在对所述集中化脚本进行调试时,根据所述集中化脚本的调试信息生成调试追踪界面。
[0012]在该技术方案中,通过生成调试追踪界面,可以实时响应当前堆栈位置部件的状态信息、上下文的参数信息等,进而使得调试人员能够方便地进行查看、处理。
[0013]在上述技术方案中,优选地,所述调试环境与所述运行环境相同包括:相同的上下文、相同事件管理器、相同的事件调度机制、相同的环境变量信息。
[0014]根据本发明的另一方面,还提出了一种基于JavaScript的脚本调试装置,包括:获取单元,用于获取所有待调试的脚本;生成单元,用于根据所述所有待调试的脚本生成集中化脚本;设置单元,用于根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同;调试单元,用于在所述调试环境下对所述集中化脚本进行调试。
[0015]在该技术方案中,通过根据所有待调试的脚本生成集中化脚本,使得能够对脚本进行集中管理,进而能够便于调试引擎记录调试信息,如当前执行堆栈信息、断点位置信息、对象实时状态信息等。而通过设置调试环境与运行环境相同,使得在脚本运行过程中也可以对脚本进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
[0016]在上述技术方案中,优选地,所述生成单元包括:初始化单元,用于初始化所述所有待调试的脚本;处理单元,用于读取并解析脚本模板文件,以及根据初始化后的所述所有待调试的脚本和解析后的所述脚本模板文件生成脚本文件;编译单元,用于编译所述脚本文件,以得到所述集中化脚本。
[0017]在上述技术方案中,优选地,所述生成单元还用于:生成脚本执行器,以根据对所述脚本执行器的控制,对启动所述集中化脚本的调试状态或非调试状态进行控制。
[0018]在该技术方案中,通过生成脚本执行器,以对集中化脚本的调试状态进行控制,使得能够对脚本执行器的执行逻辑进行控制,达到既可以调试又可以运行的状态。
[0019]在上述技术方案中,优选地,所述生成单元还用于:在所述调试单元对所述集中化脚本进行调试时,根据所述集中化脚本的调试信息生成调试追踪界面。
[0020]在该技术方案中,通过生成调试追踪界面,可以实时响应当前堆栈位置部件的状态信息、上下文的参数信息等,进而使得调试人员能够方便地进行查看、处理。
[0021]在上述技术方案中,优选地,所述调试环境与所述运行环境相同包括:相同的上下文、相同事件管理器、相同的事件调度机制、相同的环境变量信息。
[0022]通过以上技术方案,使得能够对脚本进行集中管理,进而能够便于记录调试信息,同时能够使得脚本在运行过程中也可以进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。

【专利附图】

【附图说明】
[0023]图1示出了根据本发明的实施例的基于JavaScript的脚本调试方法的示意流程图;
[0024]图2示出了根据本发明的实施例的基于JavaScript的脚本调试装置的示意框图;
[0025]图3示出了根据本发明的实施例的在BQ中创建仪表板部件的过程示意图;
[0026]图4示出了根据本发明的实施例的解决图3中所示的在创建仪表板部件的过程中出现的问题的示意流程图;
[0027]图5示出了根据本发明的实施例的脚本集中化管理的处理流程图。

【具体实施方式】
[0028]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0029]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0030]图1示出了根据本发明的实施例的基于JavaScript的脚本调试方法的示意流程图。
[0031]如图1所示,根据本发明的实施例的基于JavaScript的脚本调试方法,包括:步骤102,获取所有待调试的脚本;步骤104,根据所述所有待调试的脚本生成集中化脚本;步骤106,根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同;步骤108,在所述调试环境下对所述集中化脚本进行调试。
[0032]在该技术方案中,通过根据所有待调试的脚本生成集中化脚本,使得能够对脚本进行集中管理,进而能够便于调试引擎记录调试信息,如当前执行堆栈信息、断点位置信息、对象实时状态信息等。而通过设置调试环境与运行环境相同,使得在脚本运行过程中也可以对脚本进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
[0033]在上述技术方案中,优选地,根据所述所有待调试的脚本生成所述集中化脚本的步骤具体为:初始化所述所有待调试的脚本;读取并解析脚本模板文件;根据初始化后的所述所有待调试的脚本和解析后的所述脚本模板文件生成脚本文件;编译所述脚本文件,以得到所述集中化脚本。
[0034]在上述技术方案中,优选地,还包括:生成脚本执行器,以根据对所述脚本执行器的控制,对启动所述集中化脚本的调试状态或非调试状态进行控制。
[0035]在该技术方案中,通过生成脚本执行器,以对集中化脚本的调试状态进行控制,使得能够对脚本执行器的执行逻辑进行控制,达到既可以调试又可以运行的状态。
[0036]在上述技术方案中,优选地,还包括:在对所述集中化脚本进行调试时,根据所述集中化脚本的调试信息生成调试追踪界面。
[0037]在该技术方案中,通过生成调试追踪界面,可以实时响应当前堆栈位置部件的状态信息、上下文的参数信息等,进而使得调试人员能够方便地进行查看、处理。
[0038]在上述技术方案中,优选地,所述调试环境与所述运行环境相同包括:相同的上下文、相同事件管理器、相同的事件调度机制、相同的环境变量信息。
[0039]图2示出了根据本发明的实施例的基于JavaScript的脚本调试装置的示意框图。
[0040]如图2所示,根据本发明的实施例的基于JavaScript的脚本调试装置200,包括:获取单元202,用于获取所有待调试的脚本;生成单元204,用于根据所述所有待调试的脚本生成集中化脚本;设置单元206,用于根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同;调试单元208,用于在所述调试环境下对所述集中化脚本进行调试。
[0041]在该技术方案中,通过根据所有待调试的脚本生成集中化脚本,使得能够对脚本进行集中管理,进而能够便于调试引擎记录调试信息,如当前执行堆栈信息、断点位置信息、对象实时状态信息等。而通过设置调试环境与运行环境相同,使得在脚本运行过程中也可以对脚本进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
[0042]在上述技术方案中,优选地,所述生成单元204包括:初始化单元2042,用于初始化所述所有待调试的脚本;处理单元2044,用于读取并解析脚本模板文件,以及根据初始化后的所述所有待调试的脚本和解析后的所述脚本模板文件生成脚本文件;编译单元2046,用于编译所述脚本文件,以得到所述集中化脚本。
[0043]在上述技术方案中,优选地,所述生成单元204还用于:生成脚本执行器,以根据对所述脚本执行器的控制,对启动所述集中化脚本的调试状态或非调试状态进行控制。
[0044]在该技术方案中,通过生成脚本执行器,以对集中化脚本的调试状态进行控制,使得能够对脚本执行器的执行逻辑进行控制,达到既可以调试又可以运行的状态。
[0045]在上述技术方案中,优选地,所述生成单元204还用于:在所述调试单元对所述集中化脚本进行调试时,根据所述集中化脚本的调试信息生成调试追踪界面。
[0046]在该技术方案中,通过生成调试追踪界面,可以实时响应当前堆栈位置部件的状态信息、上下文的参数信息等,进而使得调试人员能够方便地进行查看、处理。
[0047]在上述技术方案中,优选地,所述调试环境与所述运行环境相同包括:相同的上下文、相同事件管理器、相同的事件调度机制、相同的环境变量信息。
[0048]下面结合图3至图4详细说明本发明的技术方案。
[0049]图3示出了根据本发明的实施例的在BQ中创建仪表板部件的过程示意图。
[0050]如图3所示,根据本发明的实施例的在BQ中创建仪表板部件的过程,包括:
[0051]步骤302,创建一个仪表板。
[0052]具体地,打开仪表板功能节点,创建仪表板,打开仪表板设计器,按照需求设计仪表板,针对业务编写仪表板中部件交互脚本。如:对于某集团公司,需要对企业的年度经营状况进行监督,因此会设计一个仪表板来通过各种图形、报表部件来清晰了解企业经营状况。在仪表板中,用户希望当选择不同的年份和地区时,显示对应年份和地区的收益情况(直方图或者其他部件)。说明:年份、地区与直方图之间的交互,需要JavaScript脚本驱动。
[0053]步骤304,针对上述业务,编写驱动脚本。
[0054]具体来说,在上述业务中,年份、地区可以通过树型部件或者下拉列表部件展示,直方图通过BQ平台中的统计图部件展示,因此,就会形成树型部件或者下拉部件以及统计图之间的联动,在部件的联动过程中,需求可能还要要求对部件的一些属性、行为进行控制,这样,普通的交互设置操作时不能满足需求的,因此,需要提供更加灵活的脚本驱动方式,来实现部件间的联动。
[0055]步骤306,预览仪表板,对结果进行验证。
[0056]具体地,BQ实施过程中,大部分时间都花费在对报表、图形等的验证上。同样如果使用仪表板,也要花大部分时间对仪表板进行验证(BI实施过程必要步骤)。仪表板的预览是对真实生产环境的模拟,因此,在预览的过程中,我们可以通过状态栏上的调试按钮,开启在Swing容器中(运行时)调试JavaScript的功能,来对交互脚本行为的正确性进行检验。
[0057]步骤308,脚本调试提供单步执行、直接执行到断点位置等功能,同时脚本调试支持在运行时检查部件的属性信息,验证部件行为的正确性。
[0058]图4示出了根据本发明的实施例的解决图3中所示的在创建仪表板部件的过程中出现的问题的示意流程图。
[0059]如图4所示,解决图3中所示的在创建仪表板部件的过程中出现的问题主要包括以下步骤:
[0060]步骤402,脚本的集中化管理。
[0061]若需要对脚本进行调试,需要对脚本集中管理,以便调试引擎记录调试信息(当前执行堆栈信息、断点位置信息、对象实时状态信息等)。因此在仪表板运行时初始化的过程中,通过仪表板预制的脚本模型,将动态收集部件驱动脚本生成集中化脚本供调试引擎调度。具体地,如图5所示,包括:步骤502,初始化环境;步骤504,初始化事件管理器;步骤506,初始化脚本引擎;步骤508,读取脚本模板文件;步骤510,解析存储模型生成脚本文件;步骤512,向运行时注册;步骤514,生成脚本文件并且编译。
[0062]步骤404,解决调试状态运行时以及生产环境运行时的一致性问题。
[0063]具体为,为调试和运行时提供统一运行时环境,包括:相同的上下文、、事件管理器、事件调度机制以及环境变量信息等。同时提供一个脚本执行器,脚本执行器设置一个开关,来启动调试状态或者非调试状态。依据调试开关控制脚本执行器的执行引擎以及执行流程,执行不同的逻辑,达到既可以调试又可以运行的状态。
[0064]步骤406,解决调试过程中变量追踪、堆栈信息展示的问题。
[0065]具体地,设计与调试信息行为一致的调试追踪界面,实时响应当前堆栈位置部件的状态信息、上下文的参数信息等。
[0066]以上结合附图详细说明了本发明的技术方案,使得能够对脚本进行集中管理,进而能够便于记录调试信息,同时能够使得脚本在运行过程中也可以进行调试,进而使得在BQ的实施过程中,模拟生产环境对运行在Swing或SWT容器中的JavaScript进行调试,验证脚本的正确性,提高了实施效率。
[0067]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于JavaScript的脚本调试方法,其特征在于,包括: 获取所有待调试的脚本; 根据所述所有待调试的脚本生成集中化脚本; 根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同; 在所述调试环境下对所述集中化脚本进行调试。
2.根据权利要求1所述的基于JavaScript的脚本调试方法,其特征在于,根据所述所有待调试的脚本生成所述集中化脚本的步骤具体为: 初始化所述所有待调试的脚本; 读取并解析脚本模板文件; 根据初始化后的所述所有待调试的脚本和解析后的所述脚本模板文件生成脚本文件; 编译所述脚本文件,以得到所述集中化脚本。
3.根据权利要求1所述的基于JavaScript的脚本调试方法,其特征在于,还包括: 生成脚本执行器,以根据对所述脚本执行器的控制,对启动所述集中化脚本的调试状态或非调试状态进行控制。
4.根据权利要求1所述的基于JavaScript的脚本调试方法,其特征在于,还包括: 在对所述集中化脚本进行调试时,根据所述集中化脚本的调试信息生成调试追踪界面。
5.根据权利要求1至4中任一项所述的基于JavaScript的脚本调试方法,其特征在于,所述调试环境与所述运行环境相同包括: 相同的上下文、相同事件管理器、相同的事件调度机制、相同的环境变量信息。
6.一种基于JavaScript的脚本调试装置,其特征在于,包括: 获取单元,用于获取所有待调试的脚本; 生成单元,用于根据所述所有待调试的脚本生成集中化脚本; 设置单元,用于根据所述集中化脚本的运行环境设置所述集中化脚本的调试环境,以使所述调试环境与所述运行环境相同; 调试单元,用于在所述调试环境下对所述集中化脚本进行调试。
7.根据权利要求6所述的基于JavaScript的脚本调试装置,其特征在于,所述生成单元包括: 初始化单元,用于初始化所述所有待调试的脚本; 处理单元,用于读取并解析脚本模板文件,以及根据初始化后的所述所有待调试的脚本和解析后的所述脚本模板文件生成脚本文件; 编译单元,用于编译所述脚本文件,以得到所述集中化脚本。
8.根据权利要求6所述的基于JavaScript的脚本调试装置,其特征在于,所述生成单元还用于: 生成脚本执行器,以根据对所述脚本执行器的控制,对启动所述集中化脚本的调试状态或非调试状态进行控制。
9.根据权利要求6所述的基于JavaScript的脚本调试装置,其特征在于,所述生成单元还用于: 在所述调试单元对所述集中化脚本进行调试时,根据所述集中化脚本的调试信息生成调试追踪界面。
10.根据权利要求6至9中任一项所述的基于JavaScript的脚本调试装置,其特征在于,所述调试环境与所述运行环境相同包括: 相同的上下文、相同事件 管理器、相同的事件调度机制、相同的环境变量信息。
【文档编号】G06F11/36GK104077225SQ201410318898
【公开日】2014年10月1日 申请日期:2014年7月4日 优先权日:2014年7月4日
【发明者】王雨学, 张乐龙 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1