gpt4 book ai didi

webview - Electron BrowserView 渲染器进程与 WebView

转载 作者:行者123 更新时间:2023-12-02 04:24:00 29 4
gpt4 key购买 nike

我正在将一个 Electron 应用程序从传统的渲染器 + webview 架构移植到使用 BrowserView 的应用程序。对象。该应用程序使用了一些 BrowserWindows显示 webview在所有可用的显示器中全屏显示。渲染器进程基本上持有 index.htmlwebview大小为 100%。

我对渲染器进程和 BrowserViews 有点困惑。

使用新方法,我只需注入(inject) preload将脚本写入 BrowserView构造函数,并且不加载 BrowserWindow 上的任何页面他们自己:

browserViewOptions = {
webPreferences: {
preload: (__dirname + "/preload.js"),
partition: "persist:ns",
nodeIntegration: false,
plugins: false
}
};
  • 这是什么渲染器进程? webviews 是传统的渲染过程吗?以前是?或者做 BrowserViews有自己的渲染器进程吗?
  • 如果是传统方式,是否在我也加载页面的情况下共享 BrowserWindow ?
  • 重要吗?我没有将页面加载到 BrowserWindow ?我的意思是,如果我不加载 BrowserWindow 中的页面(只需创建窗口以将 BrowserView 附加到它),是否还有另一个运行空页面的 Chromium 进程 ?
  • 如果是,如果我只对 BrowserView 感兴趣,可以防止这种情况发生吗? ?
  • 如果我在 BrowserWindow 上保留内容,是否存在“ overdraw ”问题?偶尔隐藏BrowserViews显示它们?
  • 最佳答案

    What renderer process is this?



    不同于 <webview> , BrowserView不使用另一个渲染器进程。您可以通过观察运行一些基本代码时出现的进程数来验证这一点:
    const mainWindow = new BrowserWindow();
    const view = new BrowserView();
    view.webContents.loadFile("index.html");
    mainWindow.setBrowserView(view);

    您不会获得额外的渲染器进程。

    Does it matter that I am not loading a page into the BrowserWindow?



    究竟有什么不同?渲染器进程的数量?不,它没有。

    is there another Chromium process with an empty page running? If yes, can this be prevented if I am only interested in the BrowserView?



    你是问空的 BrowserWindow导致冗余渲染器进程中包含“about:blank”?它不会导致额外的过程,但是是的,我相信该窗口已隐式导航到 about:blank。 (不过我可能错了,因为 mainWindow.webContents.getURL() 记录 "" 。明确地将其导航到 "about:blank" 正确记录 "about:blank" )。

    你真的不需要阻止任何事情。

    但是,我要补充一点,如果您的整个窗口要加载单个 BrowserView据我所知,在节点集成关闭的情况下,使用 BrowserView 并没有任何好处。并且应该只执行以下操作:
    const mainWindow = new BrowserWindow({
    webPreferences: {
    preload: (__dirname + "/preload.js"),
    partition: "persist:ns",
    nodeIntegration: false,
    plugins: false
    }
    });

    Are there "overdraw" issues if I keep stuff on the BrowserWindow and occasionally hide the BrowserViews to display them?



    您可能需要澄清您的问题是什么,但是加载到 BrowserWindow 中的内容将永远存在,并且会在隐藏 BrowserView 时出现.

    关于webview - Electron BrowserView 渲染器进程与 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56571883/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com