對於電子應用程序,我使用全局變量在我的管理面板中存儲一些不斷變化的值(主要是從各種客戶端收到的狀態信息)。綁定到電子全局變量的變化
所以在我的主要過程中,我收集這些數據,並將其寫入到一個變量
global.sharedObject = {
Clients:[]
}
//on receiving information via ipc
global.sharedObject.Clients.push(data);
這工作完美無瑕,並給我對象跟我的客戶端狀態數據的陣列。例如[{"id":"abe289c8-71ae-4764-87d8-1eb7b8adde7f","IP":"192.168.0.2","type":"Client Type 1","MachineName":"HP4711"}]
在我的渲染過程中存在這樣的情況是通過ractive實時顯示該數據的頁面:
const remote = require('electron').remote;
let ClientList = remote.getGlobal('sharedObject').Clients;
let ractive = new Ractive({
el: '#clientBoxes',
template: myTemplate,
twoway: false,
//magic: true,
data: {
Clients: ClientList //or with same result:
Clients: remote.getGlobal('sharedObject').Clients;
});
的數據可變成正確的,但只更新,如果我重新加載頁面。如果我使用magic: true
,我得到一個錯誤TypeError: Cannot redefine property: id at Function.defineProperty (<anonymous>) at ...\ractive\ractive.js:10637:11
有沒有人有一個想法,或知道一個更好的方法來存儲全球電子快速變化的值?
Oh dang。沒有看到這個。謝謝。我以前想過webContents,但我的應用程序不是單頁應用程序,所以在多個頁面上維護不斷變化的數據(其中只有一個使用這些數據)是相當的過載。因此,我希望能夠以全局的方式存儲它(本地存儲也是可能的,但這些數據是時間相關的,不應該在應用程序崩潰或關閉的情況下持久保存)。 – Torf