久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如果渲染器進程關閉,將收集電子全局變量垃圾

Electron global variable garbage collected if renderer process closes?(如果渲染器進程關閉,將收集電子全局變量垃圾?)
本文介紹了如果渲染器進程關閉,將收集電子全局變量垃圾?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

在 Electron 中,我的主要進程打開了一個 BrowserWindow.BrowserWindow 會加載一個 html 頁面,然后同一個窗口最終會加載另一個 html 頁面.

In Electron, I have my main process opening a BrowserWindow. The BrowserWindow loads one html page and then the same window eventually loads another html page.

main.js

var mainWindow;
global.mainState = {
  settings: {}
}
mainWindow = createWindow('main', {
  width: 1000,
  height: 800,
});
if (curState == 'load') {
  mainWindow.loadURL(`file://${__dirname}/interface/load.html`, {})
}
if (curState == 'login') {
  mainWindow.loadURL(`file://${__dirname}/interface/login.html`, {})
}

加載.html

const remote = require('electron').remote;
var testGlobal = remote.getGlobal('mainState')
testGlobal.settings = 'test value'
testGlobal.settings.inner = 'test value2'

main.js 加載第二個頁面(login.html)時,全局變量會被刪除/取消引用嗎?文檔說,如果渲染器進程取消引用全局變量,那么該變量將被 gc'd.當我嘗試對此進行測試時,我得到了不一致的結果,我只想從比我更聰明的人那里得到一些解釋.

When main.js loads the second page (login.html), will the global variable be deleted/dereferenced? The docs say that if the renderer process dereferences a global variable then the variable will be gc'd. When I try to test this I get inconsistent results and I would just like some explanation from someone more wise than I.

推薦答案

testGlobal 將被垃圾回收,因為站點發生了變化.global.mainState 不會被刪除,但是當你調用 testGlobal.settings = 'test value' 時它也不會改變,因為 remote.getGlobal() 只是為您提供 mainState 的副本,而不是參考.

testGlobal will be garbage collected, since the site changes. global.mainState will not be deleted, however it will also not change when you call testGlobal.settings = 'test value', because remote.getGlobal() just gives you a copy of mainState and not a reference.

我建議你使用 ipcMain 和 ipcRenderer 到自己同步全局變量.

I would suggest you use ipcMain and ipcRenderer to sync the global variable yourself.

這篇關于如果渲染器進程關閉,將收集電子全局變量垃圾?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to fix BrowserWindow is not a constructor error when creating child window in Electron renderer process(在 Electron 渲染器進程中創建子窗口時如何修復 BrowserWindow 不是構造函數錯誤) - IT屋-程序員軟件開發技術
mainWindow.loadURL(quot;https://localhost:3000/quot;) show white screen on Electron app(mainWindow.loadURL(https://localhost:3000/) 在 Electron 應用程序上顯示白屏)
Electron webContents executeJavaScript : Cannot execute script on second on loadURL(Electron webContents executeJavaScript:無法在第二個 loadURL 上執行腳本)
how to use electron browser window inside components in angular-cli?(如何在angular-cli的組件內使用電子瀏覽器窗口?)
ElectronJS - sharing redux store between windows?(ElectronJS - 在 Windows 之間共享 redux 存儲?)
How to access camera/webcamera inside electron app?(如何在電子應用程序中訪問相機/網絡攝像頭?)
主站蜘蛛池模板: 亚洲免费视频网址 | 99国产精品99久久久久久 | 免费黄色的视频 | 一级黄色片免费 | 久久日本| 一区二区影视 | 高清黄色 | 激情免费视频 | 在线观看日韩 | 伊人国产精品 | 天天干天天爽 | 在线国产小视频 | 99热这里都是精品 | 夜夜爽99久久国产综合精品女不卡 | 中文字幕国产在线 | 国产精品一区二区久久 | 成人久草 | 精品视频一区二区三区在线观看 | 亚洲一区二区在线视频 | 欧美理论片在线 | 青春草在线| 国产精品成人国产乱 | 日韩在线免费视频 | 欧美手机在线 | 午夜免费福利影院 | 成人午夜激情 | 欧美精品久久 | 黄色欧美 | 亚洲福利一区二区 | 狠狠爱综合 | 狠狠操狠狠搞 | 欧美一区视频 | 国产一区二区视频免费在线观看 | 国产精品久久久久久久久久久久久久 | 午夜婷婷激情 | 中文字幕第十五页 | www.三级 | 亚洲视频免费观看 | 久久久久久免费精品一区二区三区 | 91亚洲免费 | 亚洲精品二区 |