17-7-20-electron中主进程和渲染进程区别与通信

老规矩,先吐槽,再记录。

今天被上司教育了将近一个小时。因为之前自动更新的模块,我认为已经完成了,但是还有一些细节没有完善好,就一直一直的被教育~

事情全部做完,提交以后关闭issue!

electron中,从package.json的main载入的js文件就是主进程,由主进程load出来的页面就是渲染进程。

渲染进程可以有多个,主进程只有一个“main.js”。

主进程和渲染进程之间通信,可以使用ipcMain(主进程)和ipcRenderer(渲染进程)来通信,也可以使用remote模块来通信。

ipc模块就不介绍了,无非就是一个发送`ipcXX.send(channel, arg)`,然后一个接收`ipcOO.on(channel, function..)`。

可以多次发送和接收,但是ipcXX必须是不同的,才能相互通信,利用channel的信息名称来识别。

使用remote是今天刚学会的。remote下有几个子模块,比如 app模块。

在主进程中使用`app.XXX = [ 某个实例类A, B, C]`, 由于某些类的实例只能进行一次(比如说默认设置的读取等操作,多次读取,就会使文件变得混乱),

那我们在渲染进程中,就可以使用 remote.app.XXX.A来使用在主进程中 实例化的类和方法了。

再多说一个。在主进程中往往要引入一些额外的js文件,在那些额外的js文件中使用main.js中声明的变量时,由于不是一个js文件,就需要把它global化,这样就能在其他的“直系“文件中使用了。

all。 thanks。

时间: 2024-10-20 17:07:36

17-7-20-electron中主进程和渲染进程区别与通信的相关文章

使用electron进行原生应用的打包(2)---主进程与渲染进程之间的通信

上一篇讲了使用electron进行打包的配置相关文件,这篇主要讲electron中很重要的通信方式. 首先解释一个概念: electron打包的应用包含两个部分 electron的环境(node),也就是主进程. web渲染环境,副进程. 这两个环境之间是相互隔离的,无法直接进行数据通信,所以有了这篇文章. 三个角色: ipcRender ipcMain webContents ipcRenderer用于渲染进程 ipcRenderer.on(channel, listener) --> cha

uml类图和er图中主外键的表示区别

在er图也就是数据库中,无论是mysql/oracle都是从表引用主表的pk作为外键. 而在uml类图表示法中,他们的顺序则刚好相反,从主对象导向到子对象,如下: 主体是资金借款方,征信信息和资金借款合同在此上下文中依附于资金借款方,不能作为主体单独存在.

关于electron中入口文件main.js一些重要参数(持续更新maybe)

const {app, BrowserWindow} = require('electron') const path = require('path') let mainWindow function createWindow () { console.log(123) mainWindow = new BrowserWindow({ width: 900, height: 600, webPreferences: { preload: path.join(__dirname, 'preloa

Oracle GoldenGate环境中主库和备库 网络突然中断后,主端的dp进程无法启动的问题

view report dpfull, 现象是 /gg/ggs/dirdat/aa000053 (no surch file or directory) 实际上,此文件在目的端存在的. 处理方法: 1. 目的端ps -ef | grep ggs ,找到server进程,假设server进程的pid是12345 2. 目的端 kill -9 12345 3. 目的端 stop mgr 4. 目的端 start mgr 5. 源端 start dp 6.dp状态ok,问题处理完毕. Oracle G

记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)

目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: 1 ProcessStartInfo psi = new ProcessStartInfo(); 2 psi.FileName = "ProcessChild.exe"; 3 psi.Arguments = txtArgs.Text; 4 Process.Start(psi);//主要问题在这里 子进程的主程序: 1 txtArgs.Text = Process.GetCurrent

Linux中的两种守护进程stand alone和xinetd

--http://www.cnblogs.com/itech/archive/2010/12/27/1914846.html#top 一般使用stand alone /etc/init.d/ 非常少用xinetd /etc/xinetd.d/ Linux守护进程的运行方式 1.独立运行(stand-alone)的守护进程 独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下.系统服务都是独立运行的守护进程,包括syslogd和cron等

Linux中查看进程及杀死进程命令

Linux中想杀死fcitx进程,然后再重启它. [email protected]:/home/zhangbin# ps -e | grep 'fcitx' 3405 ?        00:00:00 fcitx <defunct> 3415 ?        00:00:02 fcitx   不显示标题 [email protected]:/home/zhangbin# ps -h Warning: bad ps syntax, perhaps a bogus '-'? See http

【数据库】Mysql中主键的几种表设计组合的实际应用效果

写在前面 前前后后忙忙碌碌,度过了新工作的三个月.博客许久未新,似乎对忙碌没有一点点防备.总结下来三个月不断的磨砺自己,努力从独乐乐转变到众乐乐,体会到不一样的是,连办公室的新玩意都能引起莫名的兴趣了,作为一只忙碌的 “猿” 倒不知正常与否. 咳咳, 正题, 今天要写一篇关于mysql的主键.索引的文章,mysql的研究博主进行还不够深入,今天讨论的主题主要是,主键对增删改查的具体影响是什么? 博主将用具体的实验说明. 如果你不了解主键,你可以先看看下面的小节,否则你可以直接跳转到实验步骤 了解

07.应对系统中出现大量不可中断进程和僵尸进程

上一篇,用一个 Nginx+PHP 的案例,给你讲了服务器 CPU 使用率高的分析和应对方法.这里一定要记得,当碰到无法解释的 CPU 使用率问题时,先要检查一下是不是短时应用在捣 鬼. 短时应用的运行时间比较短,很难在 top 或者 ps 这类展示系统概要和进程快照的工具中发现, 你需要使用记录事件的工具来配合诊断,比如 execsnoop 或者 perf top. 这些思路你不用刻意去背,多练习几次,多在操作中思考,你便能灵活运用. 另外,我们还讲到 CPU 使用率的类型.除了上一节提到的用