[发明专利]一种基于WebWorker实现的Web应用中间件异步嵌套调用方法有效
申请号: | 201510343506.7 | 申请日: | 2015-06-19 |
公开(公告)号: | CN104932892B | 公开(公告)日: | 2017-11-21 |
发明(设计)人: | 张家重;荆秀丽;许金源;李光瑞;王玉奎;王红娟 | 申请(专利权)人: | 浪潮软件集团有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 姜明 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 webworker 实现 web 应用 中间件 异步 嵌套 调用 方法 | ||
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、基于WebWorker实现的Web应用中间件异步嵌套调用方法。
背景技术
现阶段互联网行业飞速发展,各种Web应用层出不穷,中间件技术的使用提供了上层应用与底层系统软件或服务程序之间的桥梁,屏蔽了操作系统或服务的复杂性,实现了各种技术之间的资源共享,减少了程序设计的复杂性。Web应用与中间件通过接口和事件通讯,应用调用中间件接口,中间件通过事件进行反馈,事件发生时触发在Web应用中绑定的代码完成处理任务。JavaScript是一种在Web应用开发中广泛使用的直译式脚本语言,可以实现在HTML页面嵌入动态文本,对浏览器事件做出响应,对即将提交到服务器的数据进行验证,对访客信息进行检测等等功能,非常强大,但是众所周知,Javascript语言的执行环境是相对单纯的"单线程"(single thread),所有任务顺序执行,一方面限制了处理速度,另一方面应用技术的扩展也受到了局限。目前多线程技术在服务端已经发展的很成熟了,但是在Web端的应用中却一直是鸡肋,中间件调用又是Web开发不可获取的组成部分,直接影响了中间件的调用。在Web应用中调用中间件有时需要中间件的事件反馈,这时如果需要再次调用中间件接口,需要等到事件处理完成中间件资源释放后,才能再次调用中间件接口,而无法实现嵌套调用。这种处理方式耗时较长,对界面响应产生很大影响,用户体验较差。如果能在JavaScript接到中间件事件反馈后就能立即释放中间件资源,这样再次调用中间件接口就不会出现冲突了。对此虽然JavaScript中也提供了一些方法,例:setTimeout、setInterval,但是它们不是真正意义上的多线程,而只是将任务分配到了JavaScript引擎任务队列的后端,不能实现事件处理与资源释放的同步,需要等到任务队列前端任务都执行完成才能执行。基于此,现提供一种基于WebWorker实现的Web应用中间件异步嵌套调用方法。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、基于WebWorker实现的Web应用中间件异步嵌套调用方法。
一种基于WebWorker实现的Web应用中间件异步嵌套调用方法,其具体实现过程为:
一、首先搭建Web应用运行环境,然后部署应用,完成参数配置,最后注册中间件;
二、准备完成后即可启动应用,展示用户交互Web页面,接受用户操作;
三、在后台始终运行JavaScript主线程,处理相关业务流程,WebWorker在应用启动时完成检测,实例化为worker对象;
四、在收到中间件指令时,通过WebWorker为事件处理单独创建一个后台子线程,JavaScript主线程将事件转发之后,中间件资源立刻得到释放;
五、该后台子线程收到事件后进行一定处理或者直接将事件再转给JavaScript主线程,这时主线程再次收到最初的中间件反馈事件,事件处理任务位于JavaScript引擎任务队列的前端,而且此时中间件已经完成资源释放可以接受再次调用,从而同步实现了中间件的异步嵌套调用。
搭建web应用环境过程中,中间件与webworker的实例化同时进行,其具体过程为:
首先将应用初始化,实现中间件加载;
将中间件实例化,方便后面调用;
中间件加载实例化的同时,判断浏览器是否支持webWorker;
同时将webWorker实例化。
所述后台子线程通过Js文件定义创建,从而实现worker子线程处理;通过该Js文件创建一个worker,指向特定的JS文件,同时返回一个worker实例。
所述步骤四中,当JavaScript主线程接收到需调用中间件指令后,自动通过中间件实例调用目标API,待中间件处理完成并反馈事件时自动触发JavaScript主线程中绑定的事件处理函数,在该函数中完成worker子线程的调用,同时释放中间件资源;在JavaScript主线程中等待子线程转发回中间件反馈事件,并在事件处理函数中进行中间件接口的再次调用,这样就实现了中间件接口的异步嵌套调用。
所述异步嵌套调用的详细过程为:
JavaScript主线程实现中间件接口API调用;
定义并绑定中间件事件处理函数,利用webWorker.postMessage实现中间件事件的转发,由JavaScript主线程切换到子线程执行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件集团有限公司,未经浪潮软件集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510343506.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种终端软件升级方法及装置
- 下一篇:一种视图组件处理方法