ipc通信
一、早期的浏览器
在早期,浏览器通常使用单个进程来处理所有这些功能。 虽然这种模式意味着您打开每个标签页的开销较少,但也同时意味着一个网站的崩溃或无响应会影响到整个浏览器。
而chrome浏览器不同,每个标签页都在自己的进程中进行渲染。因此,作为一名应用开发者,需要控制两种进程:主进程和渲染器进程。
二、主进程
每个 Electron 应用都有一个单一的主进程,作为应用程序的入口点。 主进程在 Node.js 环境中运行,这意味着它具有
require
模块和使用所有 Node.js API 的能力。
1 | // main.js |
三、渲染器进程
渲染器无权直接访问
require
或其他 Node.js API。 为了在渲染器中直接包含 NPM 模块,您必须使用与在 web 开发时相同的打包工具 (例如webpack
或parcel
)
四、Preload脚本
预加载(preload)脚本包含了那些执行于渲染器进程中,且先于网页内容开始加载的代码 。 这些脚本虽运行于渲染器的环境中,却因能访问 Node.js API 而拥有了更多的权限。
预加载脚本可以在
BrowserWindow
构造方法中的webPreferences
选项里被附加到主进程。
1 | // main.js |