当通过 Electron 直接传递 HTML 文件来加载我的主窗口时,一切都按预期进行。
Electron 应用:
mainWindow.loadURL(
url.format({
pathname: path.join(__dirname, "mainWindow.html"),
protocol: "file:",
slashes: true
})
);
但是当使用 Express 并通过 localhost
访问主窗口时,Electron 应用程序首次启动时会有很大的延迟(白屏),持续约 30 秒。
但是,只要我运行 electron .
localhost
访问该页面
express 应用:
app.get("/", (req, res) => {
res.sendFile(path.join(__dirname, "mainWindow.html"));
});
app.listen(3000);
Electron 应用:
mainWindow.loadURL("http://localhost:3000");
我已经用多个端口试过了,它们都给出了相同的结果。
最佳答案
浏览器有时会尝试变得比他们需要的更聪明,代理服务器在网络的早期曾经很常见。在合作公司中,它们仍然很受欢迎。但在大多数情况下,操作系统可以透明地处理代理服务器,所以为什么浏览器仍然尝试处理这个我不是 100% 确定。
但简单的解决方法是告诉嵌入式 Chromium 不要尝试解析代理服务器。
app.commandLine.appendSwitch('auto-detect', 'false');
app.commandLine.appendSwitch('no-proxy-server')
您可能不需要上述两个开关。
当然,如果您的应用在使用代理的系统上运行,它可能会出现问题。但我有一种感觉,即使那样它也不太可能引起问题,因为希望操作系统无论如何都能处理这个问题。
此外,这可能会很方便地关注 -> https://github.com/electron/electron/issues/13829
关于javascript - Electron - 为什么与 HTML 文件相比,通过本地主机加载主窗口时会有很大的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55726947/