electron中的進程
1、electron中的多進程
Electron 繼承了來自 Chromium 的多進程架構,這使得此框架在架構上非常相似于一個現代的網頁瀏覽器。
網頁瀏覽器是個極其復雜的應用程序。 除了顯示網頁內容的主要能力之外,他們還有許多次要的職責,例如:管理眾多窗口 ( 或 標簽頁 ) 和加載第三方擴展。在早期,瀏覽器通常使用單個進程來處理所有這些功能。 雖然這種模式意味著您打開每個標簽頁的開銷較少,但也同時意味著一個網站的崩潰或無響應會影響到整個瀏覽器。
為了解決這個問題,Chrome 團隊決定讓每個標簽頁在自己的進程中渲染, 從而限制了一個網頁上的有誤或惡意代碼可能導致的對整個應用程序造成的傷害。 然后用單個瀏覽器進程控制這些標簽頁進程,以及整個應用程序的生命周期。 下方來自 Chrome 漫畫 的圖表可視化了此模型:

Electron 應用程序的結構非常相似。 作為應用開發者,你將控制兩種類型的進程:主進程 和 渲染器進程。
2、主進程
每個 Electron 應用總數有且只有一個主進程,作為應用程序的入口點。 主進程在 Node.js 環境中運行,這意味著它具有 require 模塊和使用所有 Node.js API 的能力。
Electron 的主進程是一個擁有著完全操作系統訪問權限的 Node.js 環境。 除了 Electron 模組 之外,你也可以使用 Node.js 內置模塊 和所有通過 npm 安裝的軟件包。 另一方面,出于安全原因,渲染進程默認跑在網頁頁面上,而并非 Node.js里。
2.1、窗口管理?
主進程的主要目的是使用 BrowserWindow 模塊創建和管理應用程序窗口。
BrowserWindow 類的每個實例創建一個應用程序窗口,且在單獨的渲染器進程中加載一個網頁。 您可從主進程用 window 的 webContent 對象與網頁內容進行交互。

浙公網安備 33010602011771號