一种脚本的并发调试渲染方法及装置制造方法及图纸

技术编号:18444775 阅读:19 留言:0更新日期:2018-07-14 10:19
本发明专利技术实施例公开了一种脚本的并发调试渲染方法及装置,用于实现在WEB IDE的同一个集成环境页签中对多个页面的并发调试及并发渲染。本发明专利技术实施例方法包括:接收Rhino脚本在服务器端的调试运行信息,该调试运行信息包括多个线程信息,每个线程信息包括debugID和变量状态值;对每个debugID对应的线程创建一个对应的Webworker子线程,并将每个线程发送至对应的Webworker子线程中,该Webworker子线程用于执行对应的线程代码;接收由每个Webworker子线程发送的对于对应线程的执行结果;对执行结果分别进行渲染展示,并在渲染展示中显示变量状态值。

A method and device for concurrent debugging and rendering of a script

An embodiment of the invention discloses a method and device for concurrent debugging and rendering of a script for concurrent debugging and concurrent rendering of multiple pages in the same integrated environment page of WEB IDE. The method of embodiment of the invention includes: receiving the debugging and running information of the Rhino script on the server side, the debugging run information includes multiple thread information, each thread information includes the debugID and the variable state value; a corresponding Webworker sub thread is created for each debugID corresponding thread, and each thread is sent to the corresponding W. In ebworker subthreads, the Webworker subthread is used to execute the corresponding thread code; receives the execution results for the corresponding thread sent by each Webworker Zi Xiancheng; displays the execution results respectively, and displays the variable state values in the rendering display.

【技术实现步骤摘要】
一种脚本的并发调试渲染方法及装置
本专利技术涉及数据处理
,尤其涉及一种脚本的并发调试渲染方法及装置。
技术介绍
WEBIDE(WEBIntegratedDevelopmentEnvironment)是基于浏览器的集成开发环境,可进行代码开发、检查及并发调试,所谓并发调试即在进程的调试过程中寻找断点位置,且只暂停最先遇到该断点位置的线程,而其他线程继续运行。Rhino作为一个开源的脚本引擎框架,可以运行类似javascript语法的脚本,可以调用java的方法,也可以嵌入Java执行,由于Rhino脚本作为后端java代码的扩展实现时,它的执行是在后端执行,并且是被后端java调用执行。在调试过程中,代码的执行以及过程变量值是需要在后端完成后返回给浏览器的,浏览器等待收到返回信息后渲染到WEBIDE中的相应断点的调试状态。由于java属于并发调试,所以对应的WEBIDE中的渲染调试状态也需要达到并发调试的效果。而现有web端脚本调试的方式都是单页面调试方式,不能满足WebIDE中调试的需求。WEBIDE是需要胜任在同一个集成环境页签中完成对多个页面的同时调试。因此需要处于调试状态的WEBIDE页签不能阻塞对该页签中元素的操作。
技术实现思路
本专利技术实施例提供了一种脚本的并发调试渲染方法及装置,用于实现在WEBIDE的同一个集成环境页签中对多个页面的并发调试及并发渲染。本专利技术实施例第一方面提供了一种脚本的并发调试渲染方法,包括:接收Rhino脚本在服务器端的调试运行信息,调试运行信息包括多个线程信息,每个线程信息包括debugID和变量状态值;对每个debugID对应的线程创建一个对应的Webworker子线程,并将每个线程发送至对应的Webworker子线程中,Webworker子线程用于执行对应的线程代码;接收由每个Webworker子线程发送的对于对应线程的执行结果;对执行结果分别进行渲染展示,并在渲染展示中显示变量状态值。优选的,多个线程信息中至少有一个线程信息还包括:断点位置信息;对执行结果分别进行渲染展示,并在渲染展示中显示变量状态值,包括:对执行结果分别进行渲染展示,并在渲染展示中显示变量状态值和断点位置信息。优选的,在接收由每个Webworker子线程发送的对于对应线程的执行结果之后,该方法还包括:将包括断点位置信息的第一线程排列在主线程队列中,直至第一线程对应的中断指令结束,对第一线程进行完全渲染展示。优选的,该方法还包括:实时监听每个Webworker子线程对于对应的线程的执行结果,直至每个Webworker子线程对应的线程执行结束。优选的,该方法还包括:对每个Webworker子线程执行关闭操作。本专利技术实施例第二方面提供了一种客户端,包括:第一接收单元,用于接收Rhino脚本在服务器端的调试运行信息,调试运行信息包括多个线程信息,每个线程信息包括debugID和变量状态值;创建单元,用于对每个debugID对应的线程创建一个对应的Webworker子线程,并将每个线程发送至对应的Webworker子线程中,Webworker子线程用于执行对应的线程代码;第二接收单元,用于接收由每个Webworker子线程发送的对于对应线程的执行结果;渲染展示单元,用于对执行结果分别进行渲染展示,并在渲染展示中显示变量状态值。优选的,多个线程信息中至少有一个线程信息还包括:断点位置信息;渲染展示单元,包括:渲染展示模块,用于对执行结果分别进行渲染展示,并在渲染展示中显示变量状态值和断点位置信息。优选的,该客户端还包括:排列单元,用于将包括断点位置信息的第一线程排列在主线程队列中,直至第一线程对应的中断指令结束,对第一线程进行完全渲染展示。优选的,该客户端还包括:监听单元,用于实时监听每个Webworker子线程对于对应的线程的执行结果,直至每个Webworker子线程对应的线程执行结束。优选的,该客户端还包括:关闭单元,用于对每个Webworker子线程执行关闭操作。本专利技术实施例还提供了一种计算机装置,包括处理器,该处理器用于执行存储于存储器上的计算机程序时,用于实现本专利技术实施例第一方面所述的一种脚本的并发调试渲染方法。本专利技术实施例还提供了一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用于实现本专利技术实施例第一方面所述的一种脚本的并发调试渲染方法。从以上技术方案可以看出,本专利技术实施例具有以下优点:本专利技术实施例中,通过客户端接收Rhino脚本在服务器端的调试运行信息,该调试运行信息包括多个线程,每个线程信息包括:debugID和变量状态值,客户端分别对每个debugID对应的线程创建一个Webworker子线程,并在该Webworker子线程中执行对应的线程,然后接收由该Webworker子线程发送的对于对应线程的执行结果,分别将每个执行结果进行渲染展示,并在渲染展示中显示变量状态值,因为本专利技术中的客户端可以通过在前端创建多个Webworker子线程,并将每个Webworker子线程用于执行从服务器端接收的对应线程,从而避免了客户端的主线程阻塞问题,并分别将Webworker子线程对应的线程的执行结果在客户端进行渲染展示,进一步实现了在WEBIDE的同一个集成环境页签中对多个页面的并发调试及并发渲染。附图说明图1为本专利技术实施例中一种脚本的并发调试渲染方法的一个实施例示意图;图2为本专利技术实施例中一种脚本的并发调试渲染方法的另一个实施例示意图;图3为本专利技术实施例中一种客户端的一个实施例示意图;图4为本专利技术实施例中一种客户端的另一个实施例示意图。具体实施方式本专利技术实施例提供了一种脚本的并发调试渲染方法及装置,用于实现在WEBIDE的同一个集成环境页签中对多个页面的并发调试及并发渲染。现有的WEB浏览器的内核是多线程的,其中,一个浏览器的内核至少需要三个常驻线程:javascript引擎线程、GUI渲染线程及浏览器事件触发线程,但javascript引擎线程是基于事件驱动单线程执行的,一般来说javascript引擎和页面UI会共用一个线程,所以当点击一个按钮开始运行javascript后,在这段代码运行完毕之前,页面是无法响应用户操作的,换句话说就是被“冻结”了。一般,Rhino脚本是作为后端(服务器端)java代码的扩展实现,它的执行是在后端执行,并且是被后端java调用执行。在调试过程中,代码的执行以及过程变量值是需要在后端完成后返回给前端(浏览器)的,浏览器等待收到返回信息后渲染到WEBIDE中的相应断点的调试状态,由于java属于并发调试,所以对应的WEBIDE中的渲染调试状态也需要达到并发调试的效果。基于现有的JS引擎线程和GUI渲染线程互斥而无法实现后端(服务器端)Java代码在前端(浏览器)的并发调试及并发渲染的问题,本专利技术实施例提出了一种脚本的并发调试渲染方法,用于实现在WEBIDE的同一个集成环境页签中对多个页面的并发调试及并发渲染为方便理解,下面来描述本专利技术实施例中的脚本并发调试渲染方法,请参阅图1,本专利技术实施例中一种脚本的并发调试渲染方法的一个实施例,包括:101、接收Rhino脚本在服务器端的调试运行信息,该调试运行信息包括多个线程信息,每个线程信息包本文档来自技高网...

【技术保护点】
1.一种脚本的并发调试渲染方法,其特征在于,包括:接收Rhino脚本在服务器端的调试运行信息,所述调试运行信息包括多个线程信息,每个线程信息包括debugID和变量状态值;对每个所述debugID对应的线程创建一个对应的Webworker子线程,并将每个线程发送至对应的Webworker子线程中,所述Webworker子线程用于执行对应的线程代码;接收由每个所述Webworker子线程发送的对于对应线程的执行结果;对所述执行结果分别进行渲染展示,并在渲染展示中显示所述变量状态值。

【技术特征摘要】
1.一种脚本的并发调试渲染方法,其特征在于,包括:接收Rhino脚本在服务器端的调试运行信息,所述调试运行信息包括多个线程信息,每个线程信息包括debugID和变量状态值;对每个所述debugID对应的线程创建一个对应的Webworker子线程,并将每个线程发送至对应的Webworker子线程中,所述Webworker子线程用于执行对应的线程代码;接收由每个所述Webworker子线程发送的对于对应线程的执行结果;对所述执行结果分别进行渲染展示,并在渲染展示中显示所述变量状态值。2.根据权利要求1所述的方法,其特征在于,所述多个线程信息中至少有一个线程信息还包括:断点位置信息;对所述执行结果分别进行渲染展示,并在渲染展示中显示所述变量状态值,包括:对所述执行结果分别进行渲染展示,并在渲染展示中显示所述变量状态值和所述断点位置信息。3.根据权利要求2所述的方法,其特征在于,在所述接收由每个所述Webworker子线程发送的对于对应线程的执行结果之后,所述方法还包括:将包括断点位置信息的第一线程排列在主线程队列中,直至所述第一线程对应的中断指令结束,对所述第一线程进行完全渲染展示。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:实时监听每个所述Webworker子线程对于对应线程的执行结果,直至每个所述Webworker子线程对应的线程执行结束。5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:对每个所述Webworker子线...

【专利技术属性】
技术研发人员:范来华
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:广东,44

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

1