首页 > 解决方案 > 电子工作者:隐藏的 BrowserWindow 导致前端滞后

问题描述

我有一个隐藏的浏览器窗口作为我的工作人员。有很多请求同时发送,在worker中发送。即使请求是从工作人员发送的,它也会导致主浏览器窗口冻结和滞后。

任何解决方案..?

标签: javascriptnode.jselectron

解决方案


这是电子世界中的一个陷阱。当您创建浏览器窗口并远离它时,Chromium 开始限制在该后台窗口中执行的所有 JavaScript,假设用户不关心该窗口内的进程。因此,Chromium 人为地限制了该浏览器窗口可用的资源数量。

您可以传入一个额外的配置选项,以确保 Chromium 不会在您的浏览器窗口上进行限制。

如果你分享你的BrowserWindow课程,我可以提供一个解决方案,但到目前为止你还没有分享任何代码。

根据您在下面提供的内容,解决方案如下所示:

let workerWin = new BrowserWindow({
  webPreferences: { backgroundThrottling: false }
});

app通常,我会BrowserWindow这样electron

const { app, BrowserWindow } = electron;

像这样创建一个mainWindow变量:

let mainWindow;

然后使用appon ready 方法应用该对象,如下所示:

const electron = require("electron");

const { app, BrowserWindow } = electron;

let mainWindow;

app.on("ready", () => {
  mainWindow = new BrowserWindow({
    webPreferences: { backgroundThrottling: false }
  });

});

推荐阅读