Electron运行流程
Electron主进程和渲染进程
主进程:Electron 运行 package.json 的main 脚本的进程被称为主进程。在主进程中运行的脚本通过创建web页面来展示用户界面。一个Electron应用总是有且只有一个主进程。
渲染进程:用户看到的web页面就是由渲染进程描绘出来的。包括html,css和js。由于Electron使用了Chromium ( 谷歌浏览器 ) 来展示web页面,所以Chromium 的多进程架构也被使用到。每个electron中的web页面运行在他自己的渲染进程中。
主进程使用BrowserWindow 实例创建页面。每个BrowerWindow实例都在自己的渲染进程里运行页面。当一个BrowerWindow实例被销毁后,相应的渲染进程也会被终止。
ps
进程(Process):进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
线程(thread):在一个程序里的一个执行路线叫做线程。更准确的定义是:线程是“一个进程内部的控制序列“
线程和进程:一个程序至少有一个进程,一个进程至少有一个线程
Electron渲染进程中通过Nodejs读取本地文件
在普通的浏览器中,web页面通常在一个沙盒环境中运行,不被允许去接触原生的资源。然而Electron的用户在Node.js的API的支持下可以在页面中和操作系统进行一些底层交互。
Nodejs在主进程和渲染进程中都可以使用。渲染进程因为安全限制,不能直接操作原生GUI。虽然如此,因为集成了Nodejs,渲染进程也有了操作系统底层API的能力,Nodejs中常用的path,fs,Crypto等模块在Electron可以直接使用,方便我们处理链接、路径、文件MD5,同时npm还有成千上万的模块供我们选择。
var fs = require('fs');
var content = document.getElementById('content');
var button = document.getElementById('button');
button.addEventListener('click',function(e){
fs.readFile('package.json','utf8',function(err,data){
content.textContent = data;
console.log(data);
})
})
开启调试模式
// 开启调试模式
mainWindow.webContents.openDevTools()