vscode 隐藏的部分不应该渲染DOM节点,

vybvopom  于 5个月前  发布在  Vscode
关注(0)|答案(6)|浏览(135)

在与@deepak1556交谈时,他让我意识到即使启用了原生标题栏,标题栏部分仍然会渲染DOM节点,如window-control-container。似乎一个隐藏或未启用的部分仍然会添加DOM节点,这似乎很奇怪。我也尝试了活动栏,并注意到那里有DOM节点:

我强烈建议隐藏或禁用的工作台部分不应添加DOM节点,并且应完全从工作台布局中排除:

  • 标题栏
  • 活动栏
  • 状态栏
  • 侧边栏
  • 辅助栏
  • 面板
ni65a41a

ni65a41a1#

我可能会记错,但我觉得对于那些切换可见性的部分,当我们使用这种方法切换它们时,我们得到了更好的性能。@joaomoreno 我相信这是其中的一部分。

nuypyhwy

nuypyhwy2#

好的点,对于经常切换的组件,如侧边栏,应该优化速度。但对于可能仍然处于禁用状态的部分,我会删除DOM节点。
顺便说一下,这个观点来自于研究慢速窗口调整性能:由于div仍在DOM中,即使启用了原生标题,仍会应用导致窗口控制容器变慢的CSS规则。

bqujaahr

bqujaahr3#

@bpasero这是否意味着即使规则存在,但不适用于现有元素,它也会变慢?

a7qyws3x

a7qyws3x4#

我并没有确认这一点,但人们表示即使拥有本地头衔,perf也运行缓慢,所以这是一个怀疑。

m4pnthwp

m4pnthwp5#

@sbatten 我只能确认在 env(titlebar-area-*) 的情况下,即使在原生标题栏场景中存在 window-controls-container,也会导致相同的过度重新计算样式,所以它似乎有效果。我不能为其他情况说话,需要进行测量:)

yjghlzjz

yjghlzjz6#

我认为这里最大的问题是标题栏部分在原生情况下渲染,它永远不会显示。其他可以切换但不太可能的部分也可以进行优化,但我将重点关注原生标题栏情况,其中许多逻辑和DOM渲染仍在发挥作用。由于布局代码,我可能会实现一个NativeTitlebarPart来提供ITitleService接口和一个非常便宜的可序列化视图。

相关问题