我有一个单页面应用程序(SPA),通过添加和删除DOM子树(带有子节点的节点)动态显示DOM的不同部分。
它们就像一个"页面",由菜单和应用程序逻辑切换,可能包含很多子元素,如控件,文本,表格等。
问题是,当添加新节点时,浏览器需要很长时间才能绘制它,这会导致闪烁。我尝试添加一个opacity = 0的节点,然后将不透明度更改为1,但我怎么能理解所需的超时?
是否可以检测重绘何时完成,以及仅在此之后使新节点可见?
我尝试使用MutationObserver,但它只是在添加节点后立即调用我的回调,而不是在实际绘制节点时。现在我使用" setTimeout"但是找不到要使用的超时值是不可能的。
我不想让应用程序过于迟缓,另一方面,对于有很多孩子的复杂节点的短暂超时,不能防止这种重绘闪烁。
请帮忙。