Javascript 电子:切换URL'时避免闪烁;与';loadURL';
在我的电子应用程序中,我只有一个窗口。在浏览我的应用程序的不同“表单”时,我使用调用Javascript 电子:切换URL'时避免闪烁;与';loadURL';,javascript,electron,Javascript,Electron,在我的电子应用程序中,我只有一个窗口。在浏览我的应用程序的不同“表单”时,我使用调用mainWindow.loadURL('file://...)-函数。不幸的是,这将导致闪烁效果,因为browserwindow会清除其内容并加载新的HTML文件。这将导致一种非常不民族的感觉。另外,我在实例化窗口时已经选中了“backgroundColor”-选项 mainWindow = new BrowserWindow({ width: 1000, height: 600,
mainWindow.loadURL('file://...)
-函数。不幸的是,这将导致闪烁效果,因为browserwindow会清除其内容并加载新的HTML文件。这将导致一种非常不民族的感觉。另外,我在实例化窗口时已经选中了“backgroundColor
”-选项
mainWindow = new BrowserWindow({
width: 1000,
height: 600,
backgroundColor: '#2e2c29'});
但这也会失败(在切换URL时,应用程序的背景将始终为白色一秒钟或更长时间)
有没有办法避免这种情况?我发现有一个加载不同“表单”的有趣示例。repo中的演示通常加载了所有表单,但一次只能查看其中一个表单,具体取决于用户单击的内容
或者,Pluralsight的“电子剧本”课程采用了使用手柄或Jade以及jQuery制作“视图引擎”的方法。其基本思想是每个“表单”是一个把手模板,可以呈现该模板,然后将其附加到index.html中的一个div。结果允许在一个窗口electron应用程序中有多个表单。这基于其他人已经提到的内容,但在一个非常简单的示例中:
const { app, BrowserWindow} = require('electron');
function createWindow(){
let newWindow = new BrowserWindow({
width: 1000,
height: 600,
backgroundColor: '#2e2c29'
show: false
});
newWindow.loadURL(`file://${__dirname}/views/index.html`);
newWindow.once('ready-to-show', function (){
newWindow.show();
});
newWindow.on('closed', function() {
newWindow = null;
});
}
app.on('ready', function(){
createWindow();
});
这是最常见的方法,尽管我相信您可以通过创建新窗口或使用超时功能找到其他方法,直到窗口准备好显示。这是我遇到的一个问题。但是,随着electron 2.0.0的发布,您现在可以将关联设置为包含所有页面loa这对我自己的CPU使用也有很大帮助,因为它将在一个进程中加载所有这些项目
在URL之间切换时,您希望的行为是什么?可能在内容准备好之前隐藏窗口?请描述类似于初始加载的内容。@JustinEmery是的,它讨论了如何使用
准备显示事件。我猜他在同一窗口中显示不同的文件,并且必须隐藏窗口d比闪烁更糟糕。也许他希望它在准备就绪时淡入淡出,或者其他什么。这就是为什么我选择SPA路线——在同一个窗口中使用多个文件可能是个坏主意。所以你们这些家伙,在不同的“窗体”中导航一般来说这是个坏主意吗?这是一个小问题,因为我正在开发一个kiosk应用程序。你对如何处理这种情况有其他想法吗?