Basura de la variable global de electrones recolectada si se cierra el proceso de representación
En Electron, tengo mi proceso principal abriendo una BrowserWindow. BrowserWindow carga una página html y luego la misma ventana finalmente carga otra página html.
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`, {})
}
load.html
const remote = require('electron').remote;
var testGlobal = remote.getGlobal('mainState')
testGlobal.settings = 'test value'
testGlobal.settings.inner = 'test value2'
Cuando main.js carga la segunda página (login.html), ¿se eliminará / desreferenciará la variable global? Los documentos dicen que si el proceso del renderizador desreferencia una variable global, entonces la variable se convertirá en gc. Cuando trato de probar esto obtengo resultados inconsistentes y me gustaría una explicación de alguien más sabio que yo.