javascript - ElectronJS - 从远程服务器缓存 HTML 和 JS 文件

标签 javascript html caching electron application-cache

我有一个 Electron 应用程序,它使用函数 mainWindow.loadURL('http://www.example.com/index.html') 从远程服务器检索应用程序文件(.html 和 .js)

如果用户与互联网的网络连接离线或断开连接,就会出现问题。

electron有没有办法缓存html和js文件,如果用户离线,electron会自动从缓存中加载。

我尝试使用 HTML5 应用程序缓存和 webpack 插件 https://github.com/NekR/offline-plugin但这些似乎不起作用。

最佳答案

我看到这是一个老问题,但我在进行半相关搜索时偶然发现了这个问题,现在根本没有答案,所以我会提供一个:


忽略这个问题的 Electron 特定性质,网络标准的方法是使用 Service Worker。这里有一些文档:

我认为这将是解决这个问题的最直接方法,即使在 Electron 中也是如此。 (这里 Electron 的一个优势是你有一个单一的、已知的浏览器来完成这项工作,但我认为你正在尝试做的事情完全符合 Service Workers 旨在解决的问题空间。)


也就是说,我认为 Sayam 的评论/问题是有效的——如果这个 html/js 是您的 Electron 应用程序的实际内容,并且假设它不会经常更改,您可以(也许应该)将它与应用程序本身。然后您不需要为离线支持做任何特别的事情(只要 html/js 不需要基于网络的资源),并且对该代码的更改将作为应用程序更新进行部署。

我个人认为每周一次是这种方法适用的最大更新频率。如果应用程序每月自动更新 2 或 3 次,我不会感到困扰,但如果我有这个选择,我想我会卸载每周更新 2 或 3 次的应用程序。


可能还有一些 electron 和/或 node 模块可以解决这个问题空间,但我从来没有费心去寻找,因为上面的两个选项之一似乎总是适合我。

关于javascript - ElectronJS - 从远程服务器缓存 HTML 和 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346254/

相关文章:

html - Background-color:rgba() - Safari 透明度 css 错误

javascript - Express + Jade 渲染 - 客户端还是服务器端?

ios - WKWebView 最大缓存对象大小

javascript - 如果我忽略 "coding nicely"并将 css(使用样式标签)和 js(使用脚本标签)代码放在一个 html 文件中会发生什么

Javascript 数组奇怪的行为

javascript - 将 Google map 标记保存到数据库

javascript - 如何使用 Angular 过滤器对数据进行分组?

javascript - 如何使用拖放

java - 解码 html 响应

python - 使用python重复查询xml