Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

137
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda