Электрон - Почему при загрузке главного окна через localhost происходит большая задержка по сравнению с HTML-файлом? - PullRequest
2 голосов
/ 17 апреля 2019

При загрузке моего главного окна путем передачи HTML-файла напрямую через Electron все работает должным образом.

Приложение Electron:

mainWindow.loadURL(
  url.format({
    pathname: path.join(__dirname, "mainWindow.html"),
    protocol: "file:",
    slashes: true
  })
);

Но при использовании Express и доступе кВ главном окне через localhost при первом запуске приложения Electron наблюдается большая задержка (белый экран), которая длится около 30 секунд.

Однако, страница становится доступной через localhost в браузере, как только я запускаю electron .

Экспресс приложение:

app.get("/", (req, res) => {
  res.sendFile(path.join(__dirname, "mainWindow.html"));
});
app.listen(3000);

Электронное приложение:

mainWindow.loadURL("http://localhost:3000");

Я пробовал это с несколькими портами, и все они дают одинаковый результат.

1 Ответ

3 голосов
/ 17 апреля 2019

Браузеры могут иногда пытаться быть немного умнее, чем им тоже нужно, прокси-сервер обычно использовался в первые дни Интернета.И в сотрудничающих компаниях они по-прежнему популярны.Но в большинстве случаев прокси-серверы могут прозрачно обрабатываться операционной системой, поэтому, почему браузеры все еще пытаются справиться с этим, я не уверен на 100%.

Но простое решение состоит в том, чтобы сказать встроенному Chromium не пытатьсяразрешить прокси-сервер.

app.commandLine.appendSwitch('auto-detect', 'false');
app.commandLine.appendSwitch('no-proxy-server')

Возможно, вам не нужны оба вышеуказанных переключателя.

Конечно, если ваше приложение работает в системе, которая использует прокси-сервер, у него могут быть проблемы.Но я чувствую, что даже тогда это вряд ли вызовет проблему, так как, надеюсь, ОС все равно справится с этим.

Также это может быть удобно, если следить -> https://github.com/electron/electron/issues/13829

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...