一种基于WebWorker的前端多进程计算方法和系统技术方案

技术编号:33736581 阅读:61 留言:0更新日期:2022-06-08 21:33
本发明专利技术公开一种基于Web Worker的前端多进程计算方法和系统,方法包括:判断当前线程是否开启,若当前线程开启则在开启过程中向后台线程传入参数创建Worker线程;计算当前已开启线程数据,并对每一已开启线程进行赋名,用于在后台多个线程中查找对应关系;获取现线程执行内容的上下文以及出入参数,设置成功回调和错误回调;查找所述赋名的线程,并将所述赋名的线程和对应的上下文、出入参数、成功回调、错误回调绑定;根据后台多线程执行结果调用对应的数据成功回调或错误回调到主线程。所述方法和系统利用浏览器的多线程可以解决javascript单线程执行大数据计算中主线程等待和页面假死现象,从而可以无需阻断主线程。从而可以无需阻断主线程。从而可以无需阻断主线程。

【技术实现步骤摘要】
一种基于Web Worker的前端多进程计算方法和系统


[0001]本专利技术涉及互联网
,特别涉及一种基于Web Worker的前端多进程计算方法和系统

技术介绍

[0002]目前现有技术前端由于运行机制特殊性,需要处理实际dom,所以根据应用场景在创建js预言时就由先天条件决定了它为单线程语言,也导致了需要用到前端大数据量运算的场景性能出现瓶颈。为了解决这一问题,我们可以使用浏览器的多线程机制与通信来有效的解决前端单线程计算会导致页面假死或卡顿的现象。Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法。并且单独开启的线程会独立执行任务并且不干扰主线程并且可以与主线程通信。可以利用Web Worker提供的后台线程执行能力来把前端运算挪移到后台线程中,在线程执行完毕后通知主线程进行更新,完成不阻断主线程运算的目的。
[0003]上述现有技术存在如下技术问题:无论通过算法优化或者数据优化,始终都会进到javascript执行主线程当中,导致其余程序无法执行。就算是使用异步方案,但在异步的执行中依旧会碰到执行耗本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于Web Worker的前端多进程计算方法,其特征在于,所述方法包括:利用浏览器判断当前线程是否开启,若当前线程开启则在开启过程中向后台线程传入参数创建worker线程;计算当前已开启线程数据,并对每一已开启线程进行赋名,用于在后台多个线程中查找对应关系;获取现线程执行内容的上下文以及出入参数,设置成功回调和错误回调;查找所述赋名的线程,并将所述赋名的线程和对应的上下文、出入参数、成功回调、错误回调绑定;根据后台多线程执行结果调用对应的数据成功回调或错误回调到主线程。2.根据权利要求1所述的一种基于Web Worker的前端多进程计算方法,其特征在于,所述向后台线程传入参数的方法包括:通过创建的worker线程在work对象上挂载postMessage方法,通过postMessage方法将参数从主线程传入到worker线程中,用于创建所述worker线程,其中所述参数为worker线程和主线程的约定参数。3.根据权利要求1所述的一种基于Web Worker的前端多进程计算方法,其特征在于,当主线程向所述worker线程传入参数时,通过后台进程绑定self.onmessage方法获取主线程传递的参数,其中当postmessage被触发后,onmessage获取对应的postmessage消息。4.根据权利要求1所述的一种基于Web Worker的前端多进程计算方法,其特征在于,当后台进程获取到对应的参数后,进一步根据所述参数执行进程,...

【专利技术属性】
技术研发人员:张万里
申请(专利权)人:杭州笨马网络技术有限公司
类型:发明
国别省市:

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

1