0
点赞
收藏
分享

微信扫一扫

js 沙箱

山竹山竹px 2022-03-23 阅读 34


​js/css​​ 污染是无法避免的,并且是一个可大可小的问题。就像一颗定时炸弹,不知道什么时候会出问题,排查也麻烦。作为一个基础框架,解决这两个污染非常重要,不能仅凭“规范”开发。

​js​​​ 沙箱的原理是子项目加载之前,对 ​​window​​ 对象做一个快照,子项目卸载时恢复这个快照,如图:

js 沙箱_jquery


那么如何监测 ​​window​​​ 对象的变化呢,直接将 ​​window​​​ 对象进行一下深拷贝,然后深度对比各个属性显然可行性不高,​​qiankun​​​框架采用的是​​ES6​​​新特性,​​proxy​​代理方法。具体如何操作的,之前的文章有写(链接在文末),就不再赘述。

但是 ​​proxy​​​ 是不兼容 ​​IE11​​​ 的,为了兼容,低版本 ​​IE​​​ 采用了 ​​diff​​​ 方法:浅拷贝 ​​window​​ 对象,然后对比每一个属性。

作者:沉末_

举报

相关推荐

0 条评论