Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

138
Visualizações
Lidiando con el arranque lento de Electron

Contexto

He pasado algunas horas jugando con Electron y he observado que toma constantemente más de 2,5 segundos dibujar un archivo html trivial en la pantalla. La línea de tiempo es más o menos la siguiente:

  • 60 ms: se activa el evento de aplicación ready ; creamos una ventana usando new BrowserWindow()
  • 170 ms: aparece una ventana en blanco en la pantalla
  • 2800 ms: la ventana muestra el HTML especificado

Configuré un repositorio con mi código, que se deriva de los documentos de inicio rápido de Electron.

Con respecto a mi máquina, estoy ejecutando Windows 10 en un ThinkPad T460 de 2016 con SSD y suficiente memoria.

Preguntas

Enviar una aplicación que muestra una ventana en blanco durante tanto tiempo al iniciarse no es posible para mí. Supongo que la mayoría de las personas que desarrollan aplicaciones Electron piensan de manera similar. De ahí mi primera pregunta: ¿estoy haciendo algo mal? ¿O es este el tiempo de carga esperado para una aplicación de Electron trivial?

Suponiendo que este sea un comportamiento normal, ¿cuál es la forma común de abordar este problema? Algunas ideas vienen a la mente:

  1. Pedir a Electron que muestre una pantalla de inicio: a menos que haya una funcionalidad integrada específica para esto, parece imposible, ya que la pantalla de inicio en sí se mostraría solo después de 2,5 segundos.
  2. Oculte la ventana de la aplicación hasta que se represente (usando el evento ready-to-show ), de modo que no se muestre ninguna ventana en blanco. Esto no es lo ideal, ya que significa que el usuario no recibe ningún comentario de que la aplicación se está cargando.
  3. Cree una aplicación contenedora (usando código nativo) que muestre una pantalla de inicio, inicie electrones y se oculte una vez que se muestre la ventana de electrones. De alguna manera anula el propósito de usar Electron en primer lugar, porque terminas escribiendo código nativo y agregando complejidad accidental.
  4. Establecer el color de fondo de la ventana en algo parecido a su aplicación, como lo sugieren los documentos . Esto simplemente no se ve muy bien.

Dado que este debe ser un problema común, espero que la comunidad haya encontrado soluciones estándar. Me alegraría si alguien me puede señalar en la dirección correcta.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

¿Qué sucede si oculta su ventana hasta que esté lista para mostrarse, luego muestra su ventana y, mientras su ventana está oculta, muestra una rueda giratoria de carga?

Primero solo muestre su ventana principal hasta que esté lista:

 var mainWindow = new BrowserWindow({ show: false }); mainWindow.webContents.once('did-finish-load', function () { mainWindow.show(); loadingWindow.close(); });

Mientras tanto, muestra un spinner de carga:

 var loadingWindow = new BrowserWindow({ width: 200, height: 200, transparent: (process.platform != 'linux'), // Transparency doesn't work on Linux. resizable: false, frame: false, alwaysOnTop: true, hasShadow: false, title: "Loading..." }); loadingWindow.loadURL('file://' + __dirname + '/loadingAnimation.gif');
over 4 years ago · Santiago Trujillo Relatório

0

Respuesta corta

Windows Defender está provocando la ralentización, por lo que no se trata de un problema de Electron.

Respuesta larga

Resulta que la protección en tiempo real de Windows Defender hace que el inicio dure mucho más de lo necesario. Después de desactivar la protección en tiempo real, logramos un rendimiento aceptable:

  • 55 ms: aplicación lista
  • 150 ms: se muestra una ventana en blanco
  • 500 ms: HTML cargado y mostrado

Esto significa que la opción 1 de mis soluciones propuestas (que muestra una pantalla de inicio) debería funcionar bastante bien para aplicaciones de carga lenta.

Lo único que queda es descubrir cómo resolver el problema de Windows Defender. Con ese propósito, he hecho una nueva pregunta .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda