rup*_*pps 6 webview chromium electron
我正在将 Electron 应用程序从传统的渲染器 + Webview 架构移植到使用BrowserView对象的架构。该应用程序使用一些在所有可用的监视器中BrowserWindows显示webview全屏。渲染器进程基本上保持index.html100 webview% 的大小。
我对渲染器进程和浏览器视图有点困惑。
使用新方法,我只需将preload脚本注入构造函数中BrowserView,而不在其BrowserWindow自身上加载任何页面:
browserViewOptions = {
webPreferences: {
preload: (__dirname + "/preload.js"),
partition: "persist:ns",
nodeIntegration: false,
plugins: false
}
};
Run Code Online (Sandbox Code Playgroud)
webviews?或者BrowserViews有自己的渲染器进程吗?
BrowserWindow?BrowserWindow什么关系吗?我的意思是,如果我不加载页面BrowserWindow(只是创建窗口来附加一个页面BrowserView),是否还有另一个正在运行空页面的 Chromium 进程?
BrowserView?BrowserWindow并偶尔隐藏BrowserViews以显示它们,是否会出现“透支”问题?这是什么渲染进程?
与 不同的是<webview>,BrowserView不使用另一个渲染器进程。您可以通过观察运行一些基本代码时出现的进程数来验证这一点,如下所示:
const mainWindow = new BrowserWindow();
const view = new BrowserView();
view.webContents.loadFile("index.html");
mainWindow.setBrowserView(view);
Run Code Online (Sandbox Code Playgroud)
您不会获得额外的渲染器进程。
我不将页面加载到 BrowserWindow 中有什么关系吗?
具体有什么区别?渲染器进程的数量?不,事实并非如此。
是否有另一个 Chromium 进程正在运行一个空页面?如果是,如果我只对 BrowserView 感兴趣,可以防止这种情况吗?
您是否在询问空是否会导致BrowserWindow其中包含“about:blank”的冗余渲染器进程?它不会导致额外的过程,但是我相信窗口隐式导航到 about:blank。(不过,我对此可能是错的,因为mainWindow.webContents.getURL()logs ""。显式地将其导航到"about:blank"正确的logs "about:blank")。
你真的不需要阻止任何事情。
但是,我要补充一点,如果您的整个窗口要在BrowserView关闭节点集成的情况下加载单个窗口,据我所知,您不会从使用 a 中获得任何好处BrowserView,而应该执行以下操作:
const mainWindow = new BrowserWindow({
webPreferences: {
preload: (__dirname + "/preload.js"),
partition: "persist:ns",
nodeIntegration: false,
plugins: false
}
});
Run Code Online (Sandbox Code Playgroud)
如果我将内容保留在 BrowserWindow 上并偶尔隐藏 BrowserViews 以显示它们,是否会出现“透支”问题?
您可能需要澄清您的问题是什么,但是加载到 中的内容BrowserWindow将始终存在,并且在隐藏BrowserView.
| 归档时间: |
|
| 查看次数: |
3823 次 |
| 最近记录: |