背景
我花了几个小时来尝试使用Electron,并观察到将一个简单的html文件绘制到屏幕上需要超过2.5秒的时间。 时间线大致如下:
- 60毫秒:应用程序触发
ready
事件;我们使用new BrowserWindow()
创建一个窗口 - 170毫秒:一个空白的窗口出现在屏幕上
- 2800毫秒:窗口显示指定的HTML
我已经设置了一个存储库,其中包含我的代码,它是从Electron的快速入门文档中派生的。
关于我的电脑,我正在运行Windows 10,使用2016年的ThinkPad T460,配备SSD和足够的内存。
问题
启动时显示空白窗口的应用程序对我来说是不可接受的。 我认为大多数开发Electron应用程序的人都持类似的看法。 因此,我的第一个问题是:我做错了什么吗? 或者这是一个普通的Electron应用程序的预期加载时间?
假设这是正常行为,解决此问题的通常方法是什么? 有一些想法:
- 请求Electron显示启动画面:除非有特定的内置功能可用,否则似乎不可行,因为启动画面本身也只会在2.5秒后显示。
- 在应用程序窗口渲染完成之前(使用
ready-to-show
事件),隐藏应用程序窗口,以避免显示空白窗口。这种方式并不理想,因为这意味着用户无法得到任何反馈来表明应用程序正在加载。 - 创建一个包装应用程序(使用本地代码)来显示启动画面,启动Electron并在Electron 窗口显示后隐藏该包装应用程序。这有点违背了使用 Electron 的初衷,因为您最终需要编写本地代码并增加不必要的复杂性。
- 根据文档建议,将窗口的背景色设置为类似于应用程序的颜色。但这看上去并不太好。
鉴于这可能是一个常见的问题,希望社区已经找到了标准解决方案。如果有人能指导我正确的方向,我会很高兴。