浅探 Web Worker 与 JavaScript 沙箱

https://segmentfault.com/a/1190000039795656

这篇文章提供了一种基于web worker的js沙箱的想法,没有具体的实现,但是对于微前端实现沙箱有非常重要的一种新型的意义,和我最近在思考的东西非常接近。最近我在思考,无论是微前端,还是跨端开发,都存在一个问题,就是我们无法直接操作DOM。在这一点上,react选择创建vdom来做,但是,随着时间的推移,vdom明显已经显示出局限性。而小程序的架构,也就是应用分为渲染线程和执行线程这种架构,对于需要将js封装起来运行提供了非常大的借鉴。我的设想是,所有的编程(基于DOM的编程)都丢到执行线程中编写,开发者可以无感的使用全部web技术来做,而框架要做的是,在执行线程提供全套DOM甚至BOM的api,同时,框架要自己解决渲染线程和执行线程通信,以真正更新界面的效果。这个通信包含的内容非常多,比如假的DOM和真实的DOM(真实的不一定是DOM,可能是flutter等渲染管线)的diff与patch,再比如用户在界面上的点、触等事件要回到执行线程中。基于这种架构,无论是微前端,还是跨端开发,都可以很轻松的抽象和分层。