Electron 基础教程-1.5 Electron是怎样工作的

Electron是怎样工作的

Electron应用基于两个独立的进程:主进程(main process)和渲染进程(render process),如图1.2。

Electron 基础教程-1.5 Electron是怎样工作的
Figure 1-2. The two processes that power an Electron application

主进程

主进程(main process)被用来处理系统级活动,例如生命周期事件(启动、准备退出、退出、前后台切换等)。主进程也用以创建菜单、各种本地对话框,例如打开关闭文件。主进程引导应用,由package.json文件引用的JavaScript文件组织,但后面章节将会看到主进程不只限于此。

渲染进程

主进程还有另一个职责,就是生成各种渲染进程(render process)。渲染进程负责显示应用的UI。每个渲染进程都会装载页面内容并在独立线程渲染。你可以根据需求为应用生成多个窗口。与传统web应用不同,每个渲染进程都能独立访问已安装的Node模块,给开发提供了很多便利。

渲染进程与任何系统级交互事件相隔绝,请记住,这些交互必须经由主进程来完成。Electron包括了进程间通信系统,它允许事件和数据信息在主进程和任何渲染进程间传递。

最后值得注意的是,你的应用不一定需要渲染进程,但进程会让你的应用交互更人性化。

其他的选择

Electron不是将web技术应用于桌面应用构建的唯一选择。最知名的Electron替代品是NW.js(前node-webkit)。两个项目有许多共同之处,还记得赵成吗?他在开发Electron之前就活跃在node-webkit项目开发中。下表是两个项目的一些主要不同之处:

Electron 基础教程-1.5 Electron是怎样工作的
Table 1-1. Project differences

二者主要的区别在于NW.js用了一个早期Chromium的修改版本,这就带来了一些Chromium模块升级或修复上的兼容性、时效性问题。其他的不同还有NW.js必须自己解决自动升级、崩溃报告等问题,而Electron已经将其构建进原生API。此外,Node进程的设计也值得注意,Electron使用了不同的进程,运行效率比必须共享一个Node进程的NW.js更高。NW.js的一个优势是支持更老的Windows版本,你若是必须支持旧版的Windows,NW.js是个更好的选择。


总结

本章为你带来了Electron技术的概览,简要了解了其两大核心技术Node和Chromium,并对两个基本进程做了介绍。通过本章你将会对基于Electron的应用领域有所了解。

接下来的章节,我们将会更深入Electron内部,探索更深层次的机理。