javascript - ElectronJS 缓存

标签 javascript node.js electron service-worker

我正在使用 Electron JS 和 react JS 构建一个离线应用程序。
启动步骤中,首先是加载一个大文件(超过 1 GB 且无法拆分)
所以我必须等待大约 50-60 秒,直到这个文件完全加载。
有没有办法在第一次启动时加载它,然后将其保存到缓存中,这样下次我启动我的应用程序时就不会花那么多时间了?

最佳答案

在下一次应用启动之前,您无法将数据缓存在内存中。当应用程序关闭时,数据就消失了。
解决的方法不多:
方法一(缓存数据直到应用关闭):
在启动时异步读取文件(因此它不会卡住应用程序)并通过将数据存储在变量中将其缓存在内存中。该应用程序将占用超过 1GB 的 RAM,并且当应用程序关闭时缓存将消失。
方法二(分 block 读取数据):
您需要一次处理整个数据集吗?如果没有,请不要读取整个文件,将其分成多个 block (文件)并在运行时需要时读取特定文件。
方法3(边读边计算):
您只需要数据来计算一次,使用流从驱动器中读取 json,并在流期间对每个 JSON 对象实时执行计算。在流结束时,所有需要的计算都将完成,应用程序将不需要约 1 GB 的 RAM。有几个模块:stream-json , bfj , big-json

关于javascript - ElectronJS 缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65442351/

相关文章:

javascript - 自动滚动到页面底部

Javascript/CSS 调整大小 div 同步

javascript - 在多个元素上使用 *ngFor 的问题

node.js - 如何将 reveal.js 应用程序部署到 heroku?

javascript - Electron: app.on ('ready' ) 永远不会被调用

reactjs - 使用外部应用程序打开 Electron 中打包的 PDF

javascript - 如何使用 ASP.NET WebForms 在 Bootstrap 中正确插入来自 jQuery、javascript 和 CSS 的引用

javascript - 如何使 Object.assign 工作?

javascript - 从 Node.js(无框架)在网站上显示数据

Angular 7/Electron : Routing does not complete after BrowserWindow. 隐藏,然后是 BrowserWindow.show