相关疑难解决方法(0)

处理缓慢的 Electron 启动

语境

我花了几个小时玩 Electron,我观察到在屏幕上绘制一个简单的 html 文件总是需要超过 2.5 秒。时间线大致如下:

  • 60 ms:appready事件被触发;我们创建一个窗口使用new BrowserWindow()
  • 170 ms:屏幕上出现一个空白窗口
  • 2800 ms:窗口显示指定的 HTML

我已经使用我的代码建立了一个存储库,该代码源自 Electron 的快速入门文档。

关于我的机器,我在 2016 年的 ThinkPad T460 上运行 Windows 10,带有 SSD 和足够的内存。

问题

发送一个在启动时显示空白窗口的应用程序对我来说是行不通的。我假设大多数开发 Electron 应用程序的人都有类似的想法。因此我的第一个问题是:我做错了什么吗?或者这是一个简单的 Electron 应用程序的预期加载时间?

假设这是正常行为,处理此问题的常用方法是什么?想到了一些想法:

  1. 要求 Electron 显示启动画面:除非有特定的内置功能,否则这似乎是不行的,因为启动画面本身只会在 2.5 秒后显示。
  2. 隐藏应用程序的窗口,直到它被渲染(使用ready-to-show事件),所以不会显示空白窗口。这并不理想,因为这意味着用户不会得到任何关于应用程序实际加载的反馈。
  3. 创建一个包装应用程序(使用本机代码),显示启动画面,启动电子并在显示电子窗口后隐藏自身。有点违背了使用 Electron 的初衷,因为您最终会编写本机代码并意外增加复杂性。
  4. 按照docs 的建议,将窗口的背景颜色设置为类似于您的应用程序的颜色。这看起来不太好。

鉴于这一定是一个普遍的问题,我希望社区已经找到了标准的解决方案。如果有人能指出我正确的方向,我会很高兴。

javascript performance desktop-application node.js electron

12
推荐指数
1
解决办法
642
查看次数