首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

WebWorker 在文本标注中的应用

之前我们的例子没有使用 WebWorker,似乎也并不影响交互。...但是本文介绍的针对 Polygon 要素的文本标注方案,将涉及复杂的多边形难抵极运算,如果不放在 WebWorker 中运算将完全卡死无法交互。...引入 WebWorker 关于 WebWorker 的基本知识以及动态创建方法(Mapbox 目前的 rollup 打包方案会用到),推荐阅读 的文章: https://zhuanlan.zhihu.com...在我们的例子中,当主线程请求 WebWorker 返回当前视口包含的数据瓦片时,WebWorker 会计算出瓦片包含的 Polygon 要素的难抵极,不影响主线程的交互: // https://github.com..._loadData(); } } 最后,从构建打包的角度看,很明显 WebWorker 和主线程代码存在大量共用代码,将公共代码抽出并在运行时拼接,动态创建 WebWorker

4.7K60

前端黑魔法:webworker动态化,无需JS文件创建worker

通过JS文件和路径创建webworker带来的问题 Webworker,我其实一直觉得用法比较生硬,因为似乎需要创建额外的JS文件才能运行,就像下面这样 var worker =new Worker('...也就是,这时候的webWorker是“静态”的,是需要额外JS文件的,是受约束的。 四次转换,将一个普通函数强行变成WebWorker 但是 @simon3000 的建议让我眼前一亮!...他告诉我,根据他使用webworker-loader(webpack技术栈)的经验,有一种连续转换的方式可以直接将一个普通函数变成WebWorker ? 这真是一个令人兴奋的信息。...第一,function.toString得到的并不是一个没有意义的字符串,它是完全可以被用来运行的 第二,通过这种方式,webworker不需要借助额外的JS文件了,webworker完全动态化和自由化...,你可以在主线程中创建任意个webworker!

3.4K10

数据结构与算法在前端领域的应用 - 换个视角看前端

实际上工作工作进程,尤其是WebWorker已经出现很长时间了。但是很多时候我们并没有充分使用,甚至连使用都没使用。 下面以Web Worker为例, 我们来深度挖掘一下工作线程的潜力。...我们来开一下脑洞, 假如流行的前端框架比如React内置了这种线程分离的功能, 即将调和算法交给WebWorker来处理,会给前端带来怎么样的变化?...第一个挑战就是操作繁琐,比如webworker只支持单独文件引入,再比如不支持函数序列化,以及反复序列化带来的性能问题, 还有和webworker通信是异步的等等。...即我们 本地每次保存一份最近一份的结果拷贝,我们只需要每次返回这个拷贝, 然后在webworker计算结果返回的时候更新拷贝即可。...然后详细介绍了主线程和工作线程,并以webworker为例,讲述了如何利用工作线程为我们的主线程分担负担。为了消化这部分知识,建议你自己动手实践一下。

70530

Angular 2:Web技术发展的必然选择

WebWorker JavaScript 以事件循环著称。...引入WebWorker API 就是为了填这些坑。WebWorker 允许在另一个线程里面执行计算密集型任务,从而解放主线程,让它可以处理用户输入并渲染用户界面。...如果digest 循环涉及密集的运算,为什么不把它移到WebWorker 中去?为什么不在WebWorker 内部执行digest循环,获取到发生变化的数据绑定,然后再把它们应用到DOM 上去呢?...在监视器回调函数内部,Angular 经常直接操作DOM,从而无法把监视器移到WebWorker 中去,因为WebWorker 是在独立的上下文中被调用的,无法直接访问DOM。...而Angular 2 在启动设计之前WebWorker 已经获得了标准化,所以核心团队从一开始就已经把它考虑在内了。

1.8K10

通用底层DOMBOM平台

比如在webworker中跑,众所周知,webworker是没有DOM API的,假如有了这个平台,那么就可以在worker中跑一个vue应用(虽然没有界面)。...再用一个基于webworker的微前端方案的例子说明: ?...既然浏览器环境下沙箱问题这么多,性能这么差,那么我能不能把沙箱迁移到一个webworker中,在worker环境下,一个子应用一个worker,根本不存在抢资源问题,也不需要用Function来包裹vue...但是,worker中没有DOM啊,也没有location, history,所以就想到了,我们需要自己造一套DOM/BOM的环境,然后把这套环境放在webworker中,这样可以让vue应用在worker...所以,接下来,就需要driver出场,driver监听VBOM中的变化,把这些变化交给controller(controller是微前端框架基于js-driver实现的一个运行在webworker中的控制器

93250

数据结构与算法在前端领域的应用 - 换个视角看前端

实际上工作工作进程,尤其是WebWorker已经出现很长时间了。但是很多时候我们并没有充分使用,甚至连使用都没使用。 下面以Web Worker为例, 我们来深度挖掘一下工作线程的潜力。...我们来开一下脑洞, 假如流行的前端框架比如React内置了这种线程分离的功能, 即将调和算法交给WebWorker来处理,会给前端带来怎么样的变化?...第一个挑战就是操作繁琐,比如webworker只支持单独文件引入,再比如不支持函数序列化,以及反复序列化带来的性能问题, 还有和webworker通信是异步的等等。...即我们 本地每次保存一份最近一份的结果拷贝,我们只需要每次返回这个拷贝, 然后在webworker计算结果返回的时候更新拷贝即可。...然后详细介绍了主线程和工作线程,并以webworker为例,讲述了如何利用工作线程为我们的主线程分担负担。为了消化这部分知识,建议你自己动手实践一下。

57220
领券