99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Electron 和 NW.js (原名 node-webkit) 在技術上的差異

2018-10-08 18:05 更新

備注:Electron 的原名是 Atom Shell。

與 NW.js 相似,Electron 提供了一個能通過 JavaScript 和 HTML 創(chuàng)建桌面應用的平臺,同時集成 Node 來授予網(wǎng)頁訪問底層系統(tǒng)的權限。

但是這兩個項目也有本質上的區(qū)別,使得 Electron 和 NW.js 成為兩個相互獨立的產(chǎn)品。

1. 應用的入口

在 NW.js 中,一個應用的主入口是一個頁面。你在 package.json 中指定一個主頁面,它會作為應用的主窗口被打開。

在 Electron 中,入口是一個 JavaScript 腳本。不同于直接提供一個URL,你需要手動創(chuàng)建一個瀏覽器窗口,然后通過 API 加載 HTML 文件。你還可以監(jiān)聽窗口事件,決定何時讓應用退出。

Electron 的工作方式更像 Node.js 運行時。 Electron 的 APIs 更加底層,因此你可以用它替代 PhantomJS 做瀏覽器測試。

2. 構建系統(tǒng)

為了避免構建整個 Chromium 帶來的復雜度,Electron 通過 libchromiumcontent 來訪問 Chromium 的 Content API。libchromiumcontent 是一個獨立的、引入了 Chromium Content 模塊及其所有依賴的共享庫。用戶不需要一個強勁的機器來構建 Electron。

3. Node 集成

在 NW.js,網(wǎng)頁中的 Node 集成需要通過給 Chromium 打補丁來實現(xiàn)。但在 Electron 中,我們選擇了另一種方式:通過各個平臺的消息循環(huán)與 libuv 的循環(huán)集成,避免了直接在 Chromium 上做改動。你可以看 node_bindings 來了解這是如何完成的。

4. 多上下文

如果你是有經(jīng)驗的 NW.js 用戶,你應該會熟悉 Node 上下文和 web 上下文的概念。這些概念的產(chǎn)生源于 NW.js 的實現(xiàn)方式。

通過使用 Node 的多上下文特性,Electron不需要在網(wǎng)頁中引入新的 JavaScript 上下文。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號