成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Electron初步【01】--主進(jìn)程VS渲染進(jìn)程&不同頁(yè)面間共享數(shù)據(jù)

Ajian / 3790人閱讀

摘要:主進(jìn)程渲染進(jìn)程主進(jìn)程在中,跑里的主腳本的進(jìn)程叫作主進(jìn)程。主進(jìn)程負(fù)責(zé)掌管所有的頁(yè)面和它們相應(yīng)的渲染進(jìn)程。不同頁(yè)面間共享數(shù)據(jù)非常簡(jiǎn)單,使用就能完成。

Electron使用了網(wǎng)頁(yè)頁(yè)面作為App的GUI,因此你可以將它看做是一個(gè)由JavaScript控制的一個(gè)小型的Chrome內(nèi)核瀏覽器。

主進(jìn)程VS渲染進(jìn)程 主進(jìn)程

在Electron中,跑package.json里的主腳本的進(jìn)程叫作主進(jìn)程。在主進(jìn)程里跑的腳本可以通過創(chuàng)建web頁(yè)面的窗口來扮演GUI角色。

主進(jìn)程看起來就是一段腳本:

const electron = require("electron");
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;

var window = null;

app.on("ready", function() {
  window = new BrowserWindow({width: 800, height: 600});
  window.loadURL("https://github.com");
});
渲染進(jìn)程

正因?yàn)镋lectron使用了chrome內(nèi)核,才使得它多進(jìn)程的結(jié)構(gòu)也可以被我們使用。在Electron里的每個(gè)頁(yè)面都有它自己的進(jìn)程,叫作渲染進(jìn)程。

在普通的瀏覽器里,網(wǎng)頁(yè)頁(yè)面跑在一個(gè)沙盒環(huán)境下,不能接觸到native源碼。而Electron則允許你在頁(yè)面中使用Node.js的API,較低程度上的和操作系統(tǒng)進(jìn)行交互。

渲染進(jìn)程如同傳統(tǒng)的HTML,但它可以直接使用Node模塊:



  
  
  
主進(jìn)程和渲染進(jìn)程的不同

主進(jìn)程通過實(shí)例化BrowserWindow,每個(gè)BrowserWindow實(shí)例都在它自己的渲染進(jìn)程內(nèi)返回一個(gè)web頁(yè)面。當(dāng)BrowserWindow實(shí)例銷毀時(shí),相應(yīng)的渲染進(jìn)程也會(huì)終止。

主進(jìn)程負(fù)責(zé)掌管所有的web頁(yè)面和它們相應(yīng)的渲染進(jìn)程。每個(gè)渲染進(jìn)程都是相互獨(dú)立的,它們只關(guān)心自己所運(yùn)行的web頁(yè)面。

在頁(yè)面(渲染進(jìn)程)中不允許調(diào)用原生GUI相關(guān)的API,那是因?yàn)樵诰W(wǎng)頁(yè)(渲染進(jìn)程)中中掌管原生GUI很危險(xiǎn),易造成內(nèi)存泄露。如果你想在網(wǎng)頁(yè)中進(jìn)行GUI的操作,渲染進(jìn)程必須向主進(jìn)程傳達(dá)請(qǐng)求,然后在主進(jìn)程中完成操作。

在Electron中,我們有幾種連接主進(jìn)程和渲染進(jìn)程的方法,例如用于傳送消息的ipcRendereripcMain模塊,以及用于RPC的remote模塊。

不同頁(yè)面間共享數(shù)據(jù)

非常簡(jiǎn)單,使用HTML5 API就能完成。

Storage API,IndexedDB都是很好的選擇。

你還可以使用Electron中提供的IPC系統(tǒng)。它在主進(jìn)程中將一個(gè)對(duì)象儲(chǔ)存為全局變量,然后可以通過remote模塊操作它們:

// 在主進(jìn)程里
global.sharedObject = {
  someProperty: "default value"
};
// In page 1.
require("remote").getGlobal("sharedObject").someProperty = "new value";

// In page 2.
console.log(require("remote").getGlobal("sharedObject").someProperty);

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79438.html

相關(guān)文章

  • Electron】酷家樂客戶端開發(fā)實(shí)踐分享 — 進(jìn)程通信

    摘要:為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信。此時(shí),就需要與渲染進(jìn)程通信了。發(fā)消息,渲染進(jìn)程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    winterdawn 評(píng)論0 收藏0
  • Electron】酷家樂客戶端開發(fā)實(shí)踐分享 — 進(jìn)程通信

    摘要:為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信。此時(shí),就需要與渲染進(jìn)程通信了。發(fā)消息,渲染進(jìn)程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    aervon 評(píng)論0 收藏0
  • Electron】酷家樂客戶端開發(fā)實(shí)踐分享 — 進(jìn)程通信

    摘要:為了能使不同的進(jìn)程互相訪問資源并進(jìn)行協(xié)調(diào)工作,才有了進(jìn)程間通信。此時(shí),就需要與渲染進(jìn)程通信了。發(fā)消息,渲染進(jìn)程收消息內(nèi)部使用來發(fā)消息。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-duan-kai-fa-shi-jian-fen-xiang-jin-cheng-tong-xin/酷家...

    Wuv1Up 評(píng)論0 收藏0
  • XCel 項(xiàng)目總結(jié) - Electron 與 Vue 的性能優(yōu)化

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

    XUI 評(píng)論0 收藏0
  • 一口氣完成electron的入門學(xué)習(xí)

    摘要:目前類似的工具有,等。在渲染進(jìn)程中,直接調(diào)用原生的接口是十分危險(xiǎn)的。這里介紹一種,通過和對(duì)象,以消息的方式進(jìn)行通信。主進(jìn)程獲得消息后,通過返回信息。另外,還提供了一種同步的消息傳遞方式。打包完成功能代碼后,我們需要將代碼打成可運(yùn)行的包。 介紹 目前,使用前端技術(shù)開發(fā)桌面應(yīng)用已經(jīng)越來越成熟,這使得前端同學(xué)也可以參與桌面應(yīng)用的開發(fā)。目前類似的工具有electron,NW.js等。這里我們著...

    Ethan815 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

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