数据流
完整数据流示例:创建钥匙串
数据同步
世界树面板和元宇宙面板共享同一数据库,通过事件同步:
// 数据变更后广播
mainWindow.webContents.send('data-changed', { module: 'keychain' })
metaverseWindow.webContents.send('data-changed', { module: 'keychain' })
// 渲染进程监听
ipcRenderer.on('data-changed', (_, { module }) => {
invalidateCache(module)
refreshUI(module)
})
缓存策略
| 层 | 缓存 | 失效方式 |
|---|---|---|
| 世界树面板 | cachedItems | 操作后手动调用 invalidateCache() |
| 元宇宙面板 | wtKeychainCache | 操作后手动调用 invalidateWtKeychainCache() |
| 数据库 | Sequelize 查询缓存 | 事务提交后自动失效 |