Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 渲染过程的电子崩溃事件触发得太晚? 问题描述:_Javascript_Electron_Chromium - Fatal编程技术网

Javascript 渲染过程的电子崩溃事件触发得太晚? 问题描述:

Javascript 渲染过程的电子崩溃事件触发得太晚? 问题描述:,javascript,electron,chromium,Javascript,Electron,Chromium,我在渲染过程中使用process.crash()或process.abort()。 而且花了很长时间才收到坠机事件 这可能会导致不良的用户体验: 如果由于某种原因在呈现过程中发生崩溃,用户需要在无响应页面上等待很长时间(约20-30秒),并且在很长时间后调用webContents.addListener的回调(“崩溃的”),然后开发人员可以做些事情 我的探索: 我在电子源代码中搜索并找到: void WebContents::RenderProcessGone(base::Termination

我在渲染过程中使用
process.crash()
process.abort()
。 而且花了很长时间才收到坠机事件

这可能会导致不良的用户体验:

如果由于某种原因在呈现过程中发生崩溃,用户需要在无响应页面上等待很长时间(约20-30秒),并且在很长时间后调用
webContents.addListener的回调(“崩溃的”
),然后开发人员可以做些事情

我的探索: 我在电子源代码中搜索并找到:

void WebContents::RenderProcessGone(base::TerminationStatus status) {
  Emit("crashed", status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED);
}
这是向
win.webContents
发出崩溃事件的正确函数吗

可能与铬的加工有关

受我知识水平的限制,我对这部分不是很清楚

一些原理图代码: 实际上,应用程序要复杂得多

通缉: 我想知道为什么调用
process.crash()
process.abort()
调用
crash
事件需要很长时间?在这段时间内,电子或铬做了什么

我想知道是否有解决此问题的解决方案(尽快获取
崩溃的
事件)

const win = new BrowserWindow({
   // some config...
});


win.webContents.addListener('crashed', () => {
  // This callback is triggered too late  
  if (!win.isDestroyed()) {
    win.close();
  }
});