javascript - 电子工作者:隐藏的 BrowserWindow 导致前端滞后
问题描述
我有一个隐藏的浏览器窗口作为我的工作人员。有很多请求同时发送,在worker中发送。即使请求是从工作人员发送的,它也会导致主浏览器窗口冻结和滞后。
任何解决方案..?
解决方案
这是电子世界中的一个陷阱。当您创建浏览器窗口并远离它时,Chromium 开始限制在该后台窗口中执行的所有 JavaScript,假设用户不关心该窗口内的进程。因此,Chromium 人为地限制了该浏览器窗口可用的资源数量。
您可以传入一个额外的配置选项,以确保 Chromium 不会在您的浏览器窗口上进行限制。
如果你分享你的BrowserWindow
课程,我可以提供一个解决方案,但到目前为止你还没有分享任何代码。
根据您在下面提供的内容,解决方案如下所示:
let workerWin = new BrowserWindow({
webPreferences: { backgroundThrottling: false }
});
app
通常,我会BrowserWindow
这样electron
:
const { app, BrowserWindow } = electron;
像这样创建一个mainWindow
变量:
let mainWindow;
然后使用app
on ready 方法应用该对象,如下所示:
const electron = require("electron");
const { app, BrowserWindow } = electron;
let mainWindow;
app.on("ready", () => {
mainWindow = new BrowserWindow({
webPreferences: { backgroundThrottling: false }
});
});
推荐阅读
- javascript - 返回对象而不是 Promise 原型,useEffect()
- javascript - 节点包管理器的 npm install 命令是否会自动运行 npm build
- node.js - 有什么方法可以获取 ActiveMQ 队列当前未决消息计数
- ios - 根据父对象的 NSSet 中的子元素对父对象进行排序
- javascript - 如何在无限循环中显示ajax的函数结果?
- angular - 如何使用 Angular CLI 9 创建 Angular 8 项目
- javascript - 如何使用 JavaScript 将键值对转换为对象?
- angular - 无法在 rxjs 中调度两个有效的动作
- php - 如何在 symfony 的查询构建器中使用 GROUP_CONCAT 检索除 NULL 以外的内容?
- google-cloud-platform - 是否可以在 GCP 上使用负载均衡器运行云?