0

我已经阅读了 Webview 和 BrowserView,它们似乎在做同样的事情:将额外的 Web 内容嵌入到应用程序中。我知道 Electron 的 webview 标签基于 Chromium 的 webview,并且这个 API 是已弃用的 Chrome Apps 平台的一部分。甚至 Electron 也建议不要使用 Webview 并考虑替代方案(iframe、BrowserView)。

但是是什么改变让 BrowserView 更胜一筹呢?我知道与 Webview 不同,BrowserView 不使用另一个渲染器进程,这就是为什么 BrowserView 具有更好的性能?其他指标是什么?BrowserView 在内部与 Webview 有何不同?

4

1 回答 1

0

这绝不是一个完整的答案,而是BrowserView由于遇到的各种问题而创建的webview

是创建它的人的博客文章:

  • 一种嵌入 Web 应用程序的新方法,具有更少的错误和更高的性能
  • webviews 起初似乎运作良好,但随着时间的推移,我们遇到了越来越多的问题。拖放等基本功能存在错误,总体性能根本无法与 Chrome 相提并论。

电子的webview文档说:

Electron 的 webview 标签基于 Chromium 的 webview,它正在经历巨大的架构变化。这会影响 webview 的稳定性,包括渲染、导航和事件路由。

当天有许多webview 错误,尽管这些特定的错误似乎已修复。

这是一个关于BrowserView维护者所说的命运的问题:

<webview>仍然有许多错误。还有一些架构问题,例如缓慢的自动调整大小,不太可能很快在 Chromium 中修复

以下是一些webview错误(尽管您当然也可以找到错误BrowserView

另外,你说:

BrowserView 不使用另一个渲染器进程

我相信我在某处也看到了对此的提及,但我认为这不是真的。

导航BrowserView到页面的那一刻,会为其创建一个新的渲染器进程。

更新:哦,我认为这里的意思是 webview == 1 进程和 BrowserView == 1 进程,但是您在另一个 Renderer 进程内创建 webview,而在主进程内创建 BrowserView。所以webview会有一个额外的过程。

于 2021-03-06T18:56:43.077 回答