Electron: более быстрое окно "Загрузочный экран" - PullRequest
0 голосов
/ 05 августа 2020

У меня есть приложение Electron, которое я пытаюсь максимально оптимизировать при запуске. Мой главный файл:

const { app, BrowserWindow, ipcMain, dialog } = require("electron")
const path = require("path")
const url = require("url")

let mainWindow = null
let loadingScreen = null
    
const createLoadingScreen = () => {
  loadingScreen = new BrowserWindow({
    useContentSize: true,
    width: 600,
    height: 350,
    frame: false,
    transparent: true,
  })

  loadingScreen.setResizable(false)

  const startURL = url.format({
    pathname: path.join(__dirname, "loading.html"),
    protocol: "file:",
    slashes: true,
  })

  loadingScreen.loadURL(startURL)
  loadingScreen.on("closed", () => (loadingScreen = null))

  loadingScreen.webContents.on("did-finish-load", () => {
    loadingScreen.show()
  })
}

createMainWindow = () => {
  mainWindow = new BrowserWindow({
    useContentSize: true,
    width: 1400,
    minWidth: 1200,
    height: 870,
    minHeight: 870,
    title: "MyApp",
    webPreferences: {
      nodeIntegration: true,
      enableRemoteModule: false,
      enableWebSQL: false,
    },
    show: false,
  })

  mainWindow.setMenu(null)

  const startUrl =
    process.env.ELECTRON_START_URL ||
    url.format({
      pathname: path.join(__dirname, "index.html"),
      protocol: "file:",
      slashes: true,
    })

  mainWindow.loadURL(startUrl)

  mainWindow.on("ready-to-show", () => {
    /// when the content has loaded, hide the loading screen and show the main window
    if (loadingScreen) {
      loadingScreen.close()
    }
    mainWindow.show()
  })
}

app.once("ready", () => {
  createLoadingScreen()
  createMainWindow()
})

app.on("window-all-closed", () => app.quit())

app.on("activate", () => {
  if (mainWindow === null) createMainWindow()
})

Запуск приложения происходит в следующие моменты:

App Ready: 0.057 seconds
Loading Screen Display: 2.437 seconds
Main Screen Display: 3.466 seconds

Как вы можете видеть, Electron «готов» через 0,057 секунды, однако это занимает почти 2,5 секунды. секунд на создание моей супер простой (одно изображение) HTML spla sh страницы, а затем еще секунда для загрузки основного приложения.

Мое желание - найти способ получить как минимум мой spla sh разверните экран как можно скорее, чтобы пользователь хотя бы знал, что приложение загружается - в настоящее время оно просто сидит, предлагая пользователю снова щелкнуть значок.

Есть ли какие-нибудь уловки для создания начальной страницы менее чем за 2,5 секунды?

Я использую следующую систему:

Window 10 Pro (Build 18363)
32GB RAM
Intel Xeon W-2145 CPU @ 3.7Ghz (16 CPUs)
NVIDIA Quadro P2200

Заранее спасибо!

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