Comments (6)
既然弹出全局不需要直接使用 iframe 不就更好了吗
from wujie.
这是个好问题,无界最早的兼容模式就是直接丢一个iframe让子应用去运行,但是发现存在一些问题:
现在运行js的iframe沙箱是隐藏起来放在body下面,不随子应用切换而销毁(内存常驻),如果把dom也放到iframe里面,势必这个iframe需要挂载到具体页面上,一旦切换页面整个iframe就会销毁,所以子应用切换的体验(白屏时间)就会很差和直接使用iframe效果差不多,并且会丧失预执行和保活等能力
所以最后决定采用dom iframe + js iframe的方案,这样的好处就是除了dom的弹窗不能够弹到全局,其他所有的能力和非兼容模式保持一致
from wujie.
说一下我的看法,对于保活这个可能并不是硬需求,我个人现在并不希望常驻内存,而且弹出到全局这点我觉得很重要。
是否考虑可以让用户自己选择呢? @yiludege
from wujie.
如果不常驻内存,那么子应用切换必然是白屏严重,我当时是这么考虑这个问题的
1、现在大部分前端框架都开始不支持ie这样的浏览器,也就是降级的这个case是越来越少的
2、如果都放到一个iframe内的话,弹窗还是不能全局,感觉效果和直接放一个<iframe src= "子应用url”>差不多,那么在这个场景用户还不如直接放个iframe
3、 要支持弹窗全局势必要将子应用的dom直接渲染在主应用节点上,然后框架层面还需要添加scope来做隔离,这个和乾坤的处理一致,子应用mount到指定$el上,兼容模式和非兼容模式用户还需要再代码层面做不同的区分,和收益比起来成本很高
现在的兼容模式和非兼容模式用户不用做任何区分,除了弹窗不能全局,其他所有的保持一致
from wujie.
我看 demo 上 弹窗是可以全局的,为什么你们又说不能全局
from wujie.
@Hollelihanqi 这个指的是降级场景哈,可以将降级开关打开,之后弹窗就无法弹出来了
from wujie.
Related Issues (20)
- OffScreenCanvas无法使用自定义字体,Canvas和HTML可以应用自定义字体。 HOT 2
- 无界子应用集成@tiptap富文本,第二次打开子应用时,中文输入法输入'@',会连续出现两个(@@),window.getSelection()永远为None HOT 1
- 3层嵌套的情况下,不同UI框架,字体图标不显示问题 HOT 1
- ios中子应用白屏,没有报错,看现象子应用中对应的js文件没加载,安卓正常 HOT 3
- jquery开发的项目,集成到无界时,js和css文件资源加载自动被注释,导致页面错乱 HOT 1
- 路由后退无反应问题 HOT 6
- 子系统的静态资源无法加载 HOT 1
- 官方可否写一个集成jQuery那种老的项目的demo
- 官网卡死, 100%复现
- 我希望配置化无界子应用,不知道子应用路由是hash模式还是history模式, WujieVue中怎么判断是否要 /#/
- 复用主应用的css样式,子应用不生效问题
- 主子应用都是Angular,子应用在使用MutationObserver用作动画处理时,zone.js中的patchClass的get方法陷入死循环
- 主应用和子应用为用一个工程,子应用偶发白屏 HOT 2
- 子应用在CDN中引入了地图框架Cesium,加载子应用时报错DOMException: Failed to construct 'Worker': Script at 'http://localhost:9081/cdn/cesium/Workers/cesiumWorkerBootstrapper.js' cannot be accessed from origin 'http://localhost:8080'. HOT 1
- WujieReact loading props not work
- 移动端 safari 浏览器 通过手势侧滑返回会闪屏
- 主应用内添加子应用初始化启动浏览器控制台报错
- 子应用 CSS 文件重复加载
- 单例模式下,cssBeforeLoaders在首次加载时生效,切换页面再次回到子应用所在页面,cssBeforeLoaders添加的css代码消失
- 子应用内存增加之后,主应用页面崩溃,报错STATUS_INTEGER_DIVIDE_BY_ZERO
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wujie.