使用Electron
开发的时候,会发现安装后第一次启动会出现短暂的空白大概是1~3
秒不等。起初是以为在创建窗口的时候会去加载html页面
,在加上vue
组件的渲染,导致在启动的时候会出现几秒的空白页面,然后渲染之后,就能正常显示。之后的下次启动也不会出现这种问题。如果是这样的话,应该是缓存才会出现第二次启动没有空白页面的情况。
在github的electron上看到了一个类似的问题,开发者给出的解释是:
他认为是Chrome的版本升级导致的问题,然后给出了一个变通的方式去解决这个问题。
解决办法就是:创建窗口的时候先将窗口隐藏,即设置show:false。然后在ready-to-show中显示窗口即调用show()函数
。
而Electron
给出的ready-to-show
解释为:
当页面已经渲染完成(但是还没有显示) 并且窗口可以被显示时触发
请注意,使用此事件意味着渲染器会被认为是"可见的"并绘制,即使 show 是false。 如果您使用 paintWhenInitiallyHidden: false,此事件将永远不会被触发。
也就是说:当页面渲染完成后,该事件会被触发。然后调用show(),就可以显示页面了。
按照理解如果这个操作,在页面渲染之后触发显示,应该不会出现白屏的问题。尝试了一下发现,依然会存在这个问题:
// 创建窗体
function createWindow() {
/**
* Initial window options
*/
let appIcon