在预加载脚本中调用 ipc 通信是一种好方法吗?
Is it good approach to call ipc communication in preload script?
刚开始学习electron
。我想知道在预加载脚本中使用 ipcRenderer
调用是否是个好主意,即:
const sc = require('./StaticContent');
const dc = require('./DynamicContent');
const { ipcRenderer } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('view').innerHTML = sc.getInfoPage();
document.getElementById('menu-info').addEventListener('click', (evt) => {
ipcRenderer.send('load-info');
});
ipcRenderer.on('get-view', (event, arg) => {
document.getElementById('view').innerHTML = arg;
});
});
我阅读的每个教程都使用外部 js
文件来管理 ipcRenderer
调用,甚至不关心 preload
脚本。但它有效。
我也可以在没有 ipc
调用的情况下实现我想要的:
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('view').innerHTML = sc.getInfoPage();
document.getElementById('menu-info').addEventListener('click', (evt) => {
document.getElementById('view').innerHTML = sc.getInfoPage();
});
});
哪个更好?我不知道有什么负面影响,我只想从头学习最佳实践。
是的,您完全可以在预加载脚本中使用 ipcRenderer
,您可以查看 here 的示例。
你是否应该最终取决于你的目标。
如果你需要让主进程做一些事情,那么你必须使用 ipc 从预加载脚本向主进程发送消息。如果您不需要任何主进程,并且只需要在 运行 预加载脚本的渲染器上下文中执行您的代码,那么您可以随意 运行 您的代码.
在您的情况下,在预加载脚本中执行所有 DOM 操作可能是有意义的。向主进程发送一条消息只是让它向渲染器发送一条消息以执行您的 get-view
处理程序只是无缘无故的额外工作。
刚开始学习electron
。我想知道在预加载脚本中使用 ipcRenderer
调用是否是个好主意,即:
const sc = require('./StaticContent');
const dc = require('./DynamicContent');
const { ipcRenderer } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('view').innerHTML = sc.getInfoPage();
document.getElementById('menu-info').addEventListener('click', (evt) => {
ipcRenderer.send('load-info');
});
ipcRenderer.on('get-view', (event, arg) => {
document.getElementById('view').innerHTML = arg;
});
});
我阅读的每个教程都使用外部 js
文件来管理 ipcRenderer
调用,甚至不关心 preload
脚本。但它有效。
我也可以在没有 ipc
调用的情况下实现我想要的:
window.addEventListener('DOMContentLoaded', () => {
document.getElementById('view').innerHTML = sc.getInfoPage();
document.getElementById('menu-info').addEventListener('click', (evt) => {
document.getElementById('view').innerHTML = sc.getInfoPage();
});
});
哪个更好?我不知道有什么负面影响,我只想从头学习最佳实践。
是的,您完全可以在预加载脚本中使用 ipcRenderer
,您可以查看 here 的示例。
你是否应该最终取决于你的目标。
如果你需要让主进程做一些事情,那么你必须使用 ipc 从预加载脚本向主进程发送消息。如果您不需要任何主进程,并且只需要在 运行 预加载脚本的渲染器上下文中执行您的代码,那么您可以随意 运行 您的代码.
在您的情况下,在预加载脚本中执行所有 DOM 操作可能是有意义的。向主进程发送一条消息只是让它向渲染器发送一条消息以执行您的 get-view
处理程序只是无缘无故的额外工作。