一种脚本封装方法和装置以及脚本运行方法和装置制造方法及图纸

技术编号:15690594 阅读:126 留言:0更新日期:2017-06-24 03:06
本发明专利技术提供了一种脚本封装方法和装置以及脚本运行方法和装置,其中,脚本封装方法包括:根据外部发送的至少一个模块参数,创建至少一个模块对象,并在每一个模块对象中,定义至少一个类。该方法对脚本进行模块化封装,形成目标脚本。当脚本的代码量较高时,可以通过创建模块对象对脚本进行封装,减少各个类之间存在的耦合,使脚本结构更加清晰。

Script encapsulation method and device, script running method and device

The present invention provides a method and a device and script script encapsulation operation method and device, which includes script encapsulation method: according to at least one external transmission module parameters, create at least one object in each module, and a module object, at least one class definition. This method encapsulates the scripts in a modular way to form a target script. When the script code is high, you can encapsulate the script by creating module objects, reducing the coupling between classes, and making the script structure clearer.

【技术实现步骤摘要】
一种脚本封装方法和装置以及脚本运行方法和装置
本专利技术涉及计算机
,特别涉及一种脚本封装方法和装置以及脚本运行方法和装置。
技术介绍
随着浏览器技术的发展,JavaScript解析速度得到大幅提升,基于JavaScript技术开发的脚本越来越流行。在实际应用场景中,随着脚本中代码量的增加,脚本封装对于脚本运行至关重要。现有技术中,在脚本封装中,脚本中的代码以类的形式存在。例如,脚本M以3个类的形式进行封装。但是,当脚本的代码量较高时,一般需要通过多个类的形式进行封装,各个类之间存在耦合,导致脚本结构不清晰。
技术实现思路
本专利技术实施例提供了一种脚本封装方法和装置以及脚本运行方法和装置,能够使脚本结构更加清晰。第一方面,本专利技术实施例提供了一种脚本封装方法,包括:接收外部发送的至少一个模块参数,每一个所述模块参数中包括:模块的名称、至少一个所述模块所依赖的模块的名称;针对每一个所述模块参数,根据当前模块参数,创建当前模块对象,所述当前模块对象中包括:所述当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;在每一个所述模块对象中,定义至少一个类;根据至少一个所述模块对象和每一个所述模块对象中所述至少一个类,生成目标脚本。优选地,所述在每一个所述模块对象中,定义至少一个类,包括:在目标模块对象中,接收外部发送的针对所述目标模块对象的至少一个目标类参数,每一个所述目标类参数中包括:目标基类、目标类的名称、所述目标类的继承关系和所述目标类的依赖关系;针对每一个所述目标类参数,根据当前目标类参数中的所述目标基类、所述目标类的名称、所述目标类的继承关系和所述目标类的依赖关系,在所述目标模块对象中,定义当前目标类。第二方面,本专利技术实施例提供了一种脚本封装装置,包括:模块定义接口,用于接收外部发送的至少一个模块参数,每一个所述模块参数中包括:模块的名称、至少一个所述模块所依赖的模块的名称;针对每一个所述模块参数,根据当前模块参数,创建当前模块对象,所述当前模块对象中包括:所述当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;类定义接口,用于在所述模块定义接口创建的每一个所述模块对象中,定义至少一个类;生成接口,用于根据所述模块定义接口创建的所述至少一个模块对象和每一个所述模块对象中所述类定义接口定义的所述至少一个类,生成目标脚本。优选地,所述类定义接口,用于在目标模块对象中,接收外部发送的针对所述目标模块对象的至少一个目标类参数,每一个所述目标类参数中包括:目标基类、目标类的名称、所述目标类的继承关系、所述目标类的依赖关系;针对每一个所述目标类参数,根据当前目标类参数中的所述目标基类、所述目标类的名称和所述目标类的继承关系和所述目标类的依赖关系,在所述目标模块对象中,定义当前目标类。第三方面,本专利技术实施例提供了一种脚本运行方法,预先创建至少一个模块对象,每一个所述模块对象中包括:当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;预先在每一个所述模块对象中,定义至少一个类;根据所述至少一个模块对象和每一个所述模块对象中所述至少一个类,生成目标脚本,还包括:接收外部发送的针对所述目标脚本的目标模块对象的名称;根据所述目标模块对象的名称,在所述至少一个模块对象中确定所述目标模块对象;根据所述目标模块对象和至少一个所述目标模块对象所依赖的模块对象的名称,确定待处理的模块对象;对每一个所述待处理的模块对象中的每一个类进行实例化。优选地,所述根据所述目标模块对象和至少一个所述目标模块对象所依赖的模块对象的名称,确定待处理的模块对象,包括:S1:建立模块加载栈;S2:将所述目标模块对象作为当前待处理的模块对象;S3:将所述当前待处理的模块对象添加到所述模块加载栈,将所述模块加载栈中的模块对象作为待处理的模块对象;S4:确定所述当前待处理的模块对象所依赖的模块对象的名称;S5:根据所述当前待处理的模块对象所依赖的模块对象的名称,判断所述当前待处理的模块对象所依赖的模块对象是否均在所述模块加载栈中,如果是,则结束当前流程,否则,执行S6;S6:将所述当前待处理的模块对象所依赖的模块对象中不在所述模块加载栈中的模块对象作为所述当前待处理的模块对象,返回S3。优选地,所述对每一个所述待处理的模块对象中的每一个类进行实例化,包括:从所述模块加载栈的栈顶开始,依次对每一个所述待处理的模块对象中的每一个类进行实例化。第四方面,本专利技术实施例提供了一种脚本运行装置,包括:模块定义接口、类定义接口、生成接口和应用程序启动接口;所述模块定义接口,用于创建至少一个模块对象,每一个所述模块对象中包括:当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;所述类定义接口,用于在所述模块定义接口创建的每一个所述模块对象中,定义至少一个类;所述生成接口,用于根据所述模块定义接口创建的所述至少一个模块对象和每一个所述模块对象中所述类定义接口定义的所述至少一个类,生成目标脚本;所述应用程序启动接口,包括:接收单元,用于接收外部发送的针对所述生成接口生成的所述目标脚本的目标模块对象的名称;确定单元,用于根据所述接收单元接收的所述目标模块对象的名称,在所述至少一个模块对象中确定所述目标模块对象;处理单元,用于根据所述确定单元确定的所述目标模块对象和至少一个所述目标模块对象所依赖的模块对象的名称,确定待处理的模块对象;实例化单元,用于对所述处理单元确定的每一个所述待处理的模块对象中的每一个类进行实例化。优选地,所述处理单元,包括:建立子单元,用于建立模块加载栈;执行子单元,用于将所述目标模块对象作为当前待处理的模块对象;添加子单元,用于将所述执行子单元确定的所述当前待处理的模块对象添加到所述建立子单元建立的所述模块加载栈,将所述模块加载栈中的模块对象作为待处理的模块对象;确定子单元,用于确定所述添加子单元中所述当前待处理的模块对象所依赖的模块对象的名称;判断子单元,用于根据所述确定子单元确定的所述当前待处理的模块对象所依赖的模块对象的名称,判断所述当前待处理的模块对象所依赖的模块对象是否均在所述模块加载栈中,如果是,则结束当前流程,否则,触发处理子单元;所述处理子单元,用于将所述当前待处理的模块对象所依赖的模块对象中不在所述模块加载栈中的模块对象作为所述当前待处理的模块对象,触发所述添加子单元。优选地,所述实例化单元,用于从所述模块加载栈的栈顶开始,依次对每一个所述待处理的模块对象中的每一个类进行实例化。第五方面,本专利技术实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一项所述的方法。第六方面,本专利技术实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一项所述的方法。本专利技术实施例提供了一种脚本封装方法和装置以及脚本运行方法和装置,其中,在脚本封装方法中,根据外部发送的至少一个模块参数,创建至少一个模块对象,并在每一个模块对象中,定义至少一个类。该方法对脚本进行模块化封装,形成目标本文档来自技高网...
一种脚本封装方法和装置以及脚本运行方法和装置

【技术保护点】
一种脚本封装方法,其特征在于,包括:接收外部发送的至少一个模块参数,每一个所述模块参数中包括:模块的名称、至少一个所述模块所依赖的模块的名称;针对每一个所述模块参数,根据当前模块参数,创建当前模块对象,所述当前模块对象中包括:所述当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;在每一个所述模块对象中,定义至少一个类;根据至少一个所述模块对象和每一个所述模块对象中所述至少一个类,生成目标脚本。

【技术特征摘要】
1.一种脚本封装方法,其特征在于,包括:接收外部发送的至少一个模块参数,每一个所述模块参数中包括:模块的名称、至少一个所述模块所依赖的模块的名称;针对每一个所述模块参数,根据当前模块参数,创建当前模块对象,所述当前模块对象中包括:所述当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;在每一个所述模块对象中,定义至少一个类;根据至少一个所述模块对象和每一个所述模块对象中所述至少一个类,生成目标脚本。2.根据权利要求1所述的方法,其特征在于,所述在每一个所述模块对象中,定义至少一个类,包括:在目标模块对象中,接收外部发送的针对所述目标模块对象的至少一个目标类参数,每一个所述目标类参数中包括:目标基类、目标类的名称、所述目标类的继承关系和所述目标类的依赖关系;针对每一个所述目标类参数,根据当前目标类参数中的所述目标基类、所述目标类的名称、所述目标类的继承关系和所述目标类的依赖关系,在所述目标模块对象中,定义当前目标类。3.一种脚本封装装置,其特征在于,包括:模块定义接口,用于接收外部发送的至少一个模块参数,每一个所述模块参数中包括:模块的名称、至少一个所述模块所依赖的模块的名称;针对每一个所述模块参数,根据当前模块参数,创建当前模块对象,所述当前模块对象中包括:所述当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;类定义接口,用于在所述模块定义接口创建的每一个所述模块对象中,定义至少一个类;生成接口,用于根据所述模块定义接口创建的所述至少一个模块对象和每一个所述模块对象中所述类定义接口定义的所述至少一个类,生成目标脚本。4.根据权利要求3所述的脚本封装装置,其特征在于,所述类定义接口,用于在目标模块对象中,接收外部发送的针对所述目标模块对象的至少一个目标类参数,每一个所述目标类参数中包括:目标基类、目标类的名称、所述目标类的继承关系、所述目标类的依赖关系;针对每一个所述目标类参数,根据当前目标类参数中的所述目标基类、所述目标类的名称和所述目标类的继承关系和所述目标类的依赖关系,在所述目标模块对象中,定义当前目标类。5.一种脚本运行方法,其特征在于,预先创建至少一个模块对象,每一个所述模块对象中包括:当前模块对象的名称、至少一个所述当前模块对象所依赖的模块对象的名称;预先在每一个所述模块对象中,定义至少一个类;根据所述至少一个模块对象和每一个所述模块对象中所述至少一个类,生成目标脚本,还包括:接收外部发送的针对所述目标脚本的目标模块对象的名称;根据所述目标模块对象的名称,在所述至少一个模块对象中确定所述目标模块对象;根据所述目标模块对象和至少一个所述目标模块对象所依赖的模块对象的名称,确定待处理的模块对象;对每一个所述待处理的模块对象中的每一个类进行实例化。6.根据权利要求5所述的方法,其特征在于,所述根据所述目标模块对象和至少一个所述目标模块对象所依赖的模块对象的名称,确定待处理的模块对象,包括:S1:建立...

【专利技术属性】
技术研发人员:陈圣杰
申请(专利权)人:济南浪潮高新科技投资发展有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1