javascript - Electron - 为什么与 HTML 文件相比,通过本地主机加载主窗口时会有很大的延迟?

标签 javascript node.js express electron

当通过 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/

相关文章:

node.js - 如何解决 MEAN stack api 项目中 undefined reference 错误响应数据?

javascript - Web进程绑定(bind)$port节点失败

c# - 从 JavaScript 调用 View

javascript - Ember - 无法访问 Controller 中注入(inject)的对象

javascript - 运行迁移时 Sequelize 已弃用错误消息

node.js - 将 Node.js 应用程序分发为单个跨平台可执行文件

javascript - 将数组拆分为包含唯一对象组合的最小子数组

javascript - 事件事件上的 HTML 元素

javascript - 为什么 jQuery mask 说它不是一个函数?

node.js - 唯一性模型在Nodejs中无法正常使用