Javascript Electron需要重新加载页面以显示内容

Javascript Electron需要重新加载页面以显示内容,javascript,node.js,django,electron,Javascript,Node.js,Django,Electron,我是新手,我的目标是在中运行应用程序。Django应用程序已使用编译,并正确放置在我的electron项目结构中 我的问题是,当我启动electron(electron.)时,它的空白窗口会打开。我需要点击刷新以显示正确的内容。我不能让这个工作,这样的网页是重新加载,以显示内容在电子打开。我尝试了reload()和reloadIgnoringCache()选项,但没有帮助 分析我的窗口webContents参数,我可以看到我的窗口最初获得currentIndex:-1,然后手动重新加载curre

我是新手,我的目标是在中运行应用程序。Django应用程序已使用编译,并正确放置在我的electron项目结构中

我的问题是,当我启动electron(
electron.
)时,它的空白窗口会打开。我需要点击刷新以显示正确的内容。我不能让这个工作,这样的网页是重新加载,以显示内容在电子打开。我尝试了
reload()
reloadIgnoringCache()
选项,但没有帮助

分析我的窗口
webContents
参数,我可以看到我的窗口最初获得
currentIndex:-1
,然后手动重新加载
currentIndex:0
(不确定是否相关…)

以下是我的
main.js
文件的相关部分:

app.on('ready', function() {
log.info('App is ready?!....');

var openWindow = function(mainAddr){
    mainWindow = new BrowserWindow({width: 1200, height: 800, backgroundColor: '#eeeeee', show:false});
    mainWindow.loadURL(mainAddr);
    mainWindow.webContents.on('did-finish-load', function() {
        mainWindow.show();

    });
    mainWindow.webContents.session.clearCache(function() {
        console.log("Cache has been cleared.");
    });
    mainWindow.webContents.reloadIgnoringCache();
    mainWindow.webContents.openDevTools();
    mainWindow.on('closed', function() {
        mainWindow = null;
        subpy.kill('SIGINT');
    });


};

好的-事实证明问题与django服务器的启动方式有关。。。它需要几秒钟的时间来启动,而此时Electron正试图到达它,但没有成功——因此出现了白色屏幕

引入超时计时器后,如下所示:

    setTimeout(function() {
                console.log('waiting ....');
                mainWindow.loadURL(mainAddr);
    },4000);

等待了4秒钟后,问题就“消失了”

好的-原来问题与django服务器的启动方式有关。。。它需要几秒钟的时间来启动,而此时Electron正试图到达它,但没有成功——因此出现了白色屏幕

引入超时计时器后,如下所示:

    setTimeout(function() {
                console.log('waiting ....');
                mainWindow.loadURL(mainAddr);
    },4000);

等待了4秒钟后,问题就“消失了”

嗨,你试过“准备好展示”活动吗?嗨@AnatolyStrashkevich-谢谢你的建议。我试了一下,结果窗户根本打不开。。。所以我甚至不能按刷新按钮..嗨,你试过“准备好展示”活动吗?嗨@AnatolyStrashkevich-谢谢你的建议。我试了一下,结果窗户根本打不开。。。所以我甚至不能按刷新按钮。你确定启动服务器总是需要4秒吗?也许更好的办法是设置与服务器的套接字连接,并在服务器加载时设置回调?您确定启动服务器总是需要4秒钟吗?也许更好的办法是设置与服务器的套接字连接,并在服务器加载时设置回调?