У меня есть приложение 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
Заранее спасибо!