国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用 Electron 在兩個(gè)進(jìn)程 (主進(jìn)程和渲染進(jìn)程) 之間進(jìn)行通訊

novo / 3256人閱讀

摘要:使用在兩個(gè)進(jìn)程主進(jìn)程和渲染進(jìn)程之間進(jìn)行通訊此系列文章的應(yīng)用示例已發(fā)布于可以或下載后運(yùn)行查看歡迎通過進(jìn)程間通信模塊允許您在主進(jìn)程和渲染進(jìn)程之間發(fā)送和接收同步和異步消息這個(gè)模塊有一個(gè)版本可用于這兩個(gè)進(jìn)程和在瀏覽器中查看和的完整文檔異步消息

使用 Electron 在兩個(gè)進(jìn)程 (主進(jìn)程和渲染進(jìn)程) 之間進(jìn)行通訊

此系列文章的應(yīng)用示例已發(fā)布于 GitHub: electron-api-demos-Zh_CN. 可以 Clone 或下載后運(yùn)行查看. 歡迎 Star .

通過 ipc(進(jìn)程間通信)模塊允許您在主進(jìn)程和渲染進(jìn)程之間發(fā)送和接收同步和異步消息.

這個(gè)模塊有一個(gè)版本可用于這兩個(gè)進(jìn)程: ipcMainipcRenderer.

在瀏覽器中查看 main process 和 renderer proces 的完整 API 文檔.

異步消息

支持: Win, macOS, Linux | 進(jìn)程: Both

使用 ipc 以異步方式在進(jìn)程之間發(fā)送消息是首選方法, 因?yàn)樗鼤?huì)在完成時(shí)返回, 而不會(huì)阻止同一進(jìn)程中的其他操作.

此示例將從此進(jìn)程(渲染器)發(fā)送異步消息 "Ping" 到主進(jìn)程, 然后主進(jìn)程回答 "Pong".

渲染器進(jìn)程

const ipc = require("electron").ipcRenderer

const asyncMsgBtn = document.getElementById("async-msg")

asyncMsgBtn.addEventListener("click", function () {
  ipc.send("asynchronous-message", "ping")
})

ipc.on("asynchronous-reply", function (event, arg) {
  const message = `異步消息回復(fù): ${arg}`
  document.getElementById("async-reply").innerHTML = message
})

主進(jìn)程

const ipc = require("electron").ipcMain

ipc.on("asynchronous-message", function (event, arg) {
  event.sender.send("asynchronous-reply", "pong")
})
同步消息

支持: Win, macOS, Linux | 進(jìn)程: Both

您可以使用 ipc 模塊在進(jìn)程之間發(fā)送同步消息. 但請注意, 此方法的同步特性意味著它在完成任務(wù)時(shí)會(huì)阻止其他操作.

此示例將從此進(jìn)程(渲染器)發(fā)送同步消息 "Ping" 到主進(jìn)程, 然后主進(jìn)程回答 "Pong".

渲染器進(jìn)程

const ipc = require("electron").ipcRenderer

const syncMsgBtn = document.getElementById("sync-msg")

syncMsgBtn.addEventListener("click", function () {
  const reply = ipc.sendSync("synchronous-message", "ping")
  const message = `同步消息回復(fù): ${reply}`
  document.getElementById("sync-reply").innerHTML = message
})

主進(jìn)程

const ipc = require("electron").ipcMain

ipc.on("synchronous-message", function (event, arg) {
  event.returnValue = "pong"
})
與隱藏窗口通信

支持: Win, macOS, Linux | 進(jìn)程: Both

通常的做法是創(chuàng)建一個(gè)新的不可見瀏覽器窗口(渲染器進(jìn)程), 以便在不影響主應(yīng)用程序窗口中的性能的情況下運(yùn)行任務(wù).

在這個(gè)示例中, 我們使用 remote 模塊從這個(gè)渲染器進(jìn)程創(chuàng)建一個(gè)新的不可見的瀏覽器窗口. 當(dāng)新頁面加載時(shí), 我們用 ipc 發(fā)送一個(gè)消息給正在監(jiān)聽的新窗口.

然后新窗口計(jì)算階乘并發(fā)送要由此接收的結(jié)果到原始窗口并添加到上面的頁面中.

渲染器進(jìn)程

const BrowserWindow = require("electron").remote.BrowserWindow
const ipcRenderer = require("electron").ipcRenderer
const path = require("path")

const invisMsgBtn = document.getElementById("invis-msg")
const invisReply = document.getElementById("invis-reply")

invisMsgBtn.addEventListener("click", function (clickEvent) {
  const windowID = BrowserWindow.getFocusedWindow().id
  const invisPath = "file://" + path.join(__dirname, "../../sections/communication/invisible.html")
  let win = new BrowserWindow({ width: 400, height: 400, show: false })
  win.loadURL(invisPath)

  win.webContents.on("did-finish-load", function () {
    const input = 100
    win.webContents.send("compute-factorial", input, windowID)
  })
})

ipcRenderer.on("factorial-computed", function (event, input, output) {
  const message = `${input} 的階乘是 ${output}`
  invisReply.textContent = message
})

隱藏窗口頁面的HTML


  

如果這邊文章對您有幫助, 感謝 下方點(diǎn)贊 或 Star GitHub: electron-api-demos-Zh_CN 支持, 謝謝.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88975.html

相關(guān)文章

  • XCel 項(xiàng)目總結(jié) - Electron 與 Vue 的性能優(yōu)化

    摘要:而這里的單元格信息是唯一的,所以直接通過為一個(gè)空對象賦值即可。和相關(guān)的知識(shí)和技巧高亮的列單元格采用展示。在中,被選中的單元格會(huì)高亮相應(yīng)的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個(gè) Excel 數(shù)據(jù)清洗工具,其通過可視化的方式讓用戶輕松地對 Excel 數(shù)據(jù)進(jìn)行篩選。 XCEL...

    XUI 評論0 收藏0
  • Electron入門介紹

    摘要:進(jìn)程主進(jìn)程在里,運(yùn)行里腳本的進(jìn)程被稱為主進(jìn)程。渲染進(jìn)程由于使用來展示頁面,所以的多進(jìn)程結(jié)構(gòu)也被充分利用。當(dāng)一個(gè)實(shí)例被銷毀后,相應(yīng)的渲染進(jìn)程也會(huì)被終止。在,我們提供用于在主進(jìn)程與渲染進(jìn)程之間通訊的模塊。 Github 系列文章地址筆者前兩天心血來潮做了個(gè)MACOS下可以進(jìn)行OCR圖文識(shí)別的小工具,發(fā)現(xiàn)Electron 在1.x之后API發(fā)生了挺大的變化,估計(jì)也是我好久沒碰了,所以打算把這...

    yunhao 評論0 收藏0
  • Electron 快速入門

    摘要:當(dāng)一個(gè)實(shí)例被銷毀后,相應(yīng)的渲染進(jìn)程也會(huì)被終止。之所以命名為,主要是為了與主進(jìn)程這個(gè)概念對應(yīng)。部分在事件觸發(fā)后才能使用。當(dāng)全部窗口關(guān)閉時(shí)退出。主進(jìn)程接收到消息并處理之后,會(huì)返回處理結(jié)果。 簡介 Electron 是一個(gè)可以使用 Web 技術(shù)如 JavaScript、HTML 和 CSS 來創(chuàng)建跨平臺(tái)原生桌面應(yīng)用的框架。借助 Electron,我們可以使用純 JavaScript 來調(diào)用豐...

    Drummor 評論0 收藏0
  • Electron 實(shí)戰(zhàn)桌面計(jì)算器應(yīng)用

    摘要:在菜單中,我想點(diǎn)擊子菜單打開一個(gè)網(wǎng)站,那么就可以用到方法,則會(huì)在默認(rèn)瀏覽器中打開打包應(yīng)用其實(shí)將程序打包成桌面應(yīng)用才是比較麻煩的事。 前言 Electron 是一個(gè)搭建跨平臺(tái)桌面應(yīng)用的框架,僅僅使用 JavaScript、HTML 以及 CSS,即可快速而容易地搭建一個(gè)原生應(yīng)用。這對于想要涉及其他領(lǐng)域的開發(fā)者來說是一個(gè)非常大的福利。 項(xiàng)目介紹 倉庫地址:lin-xin/calculato...

    GeekQiaQia 評論0 收藏0
  • 實(shí)現(xiàn)electron-bridge

    electron-bridge github鏈接 求star Motivition 如果想一套代碼同時(shí)能跑在web環(huán)境和electron環(huán)境中,就需要在代碼中先判斷環(huán)境,再分別寫對應(yīng)的邏輯。每次寫到electron環(huán)境下的邏輯,又要區(qū)分渲染進(jìn)程和主進(jìn)程,因?yàn)橛行┦轮荒茕秩具M(jìn)程做,有些事只能主進(jìn)程做。所以,我希望能將這些抽象出來,某個(gè)方法,只能在electron環(huán)境下被調(diào)用,并且不需要關(guān)心在什么進(jìn)...

    Hujiawei 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<