python与Electron联合编程记录之四(流程模型)

Electron的流程模型

   Electron应用程序采用多进程模型,进程类型包括主进程和渲染进程。主进程只有一个,而渲染进程可以有多个。每个Electron应用程序只有一个唯一的主进程,也就是应用程序的入口点(就是我们前面实例程序中的main.js),由于主进程在Node.js环境中运行,因此它具有使用require模块和使用所有Node.js的能力。
   主进程的主要目的是使用 BrowserWindow 模块创建和管理应用程序窗口。
   每个打开的 BrowserWindow 都会生成一个单独的渲染器进程,负责渲染网页内容。
   由于Electron最新的安全考虑,渲染器进程当中已经无权直接访问require或者Node.js API,因此我们无法通过require导入渲染进程的模块。在很多文章中,大部分编程案例想要使用require和Node.js API以及进行进程间通信,是通过导入 remote模块来实现。

require('@electron/remote')

   @electron/remote是一个Electron模块,它将主进程中的Javascript对象连接到渲染器进程,从而可以在渲染器进程中直接访问主进程。
   但是这个 remote模块需要安装并且根据官网文档这个模块最终会被摒弃,Electron的官方文档中也没有使用这种方法,而是通过预加载(Preload)脚本来解决的。为了更加契合Electron的编程思想,我们这边就同官方一样利用预加载(Preload)脚本来实现在渲染进程中使用require和Node.js API以及进程间通信。
   预加载脚本中的代码在网页内容加载前执行,它在渲染器的环境中执行,但是能够访问Node.js API,因此权限也更多。
   自Electron 12以来,语境隔离是默认启用的,意味着预加载脚本和渲染器的主要运行环境是隔离的,因此预加载脚本中是通过contextBridge 模块来安全地实现交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值