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

时间:2016-12-27 13:39:09

标签: javascript html5 caching electron application-cache

我有一个电子应用程序,使用函数mainWindow.loadURL('http://www.example.com/index.html')

从远程服务器检索应用程序文件(.html& .js)

如果用户网络连接脱机或断开连接,则会出现问题。

电子是否有办法缓存html和js文件,以便在用户离线时,电子将自动从缓存中加载。

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

2 个答案:

答案 0 :(得分:0)

我看到这是一个古老的问题,但是在进行半相关搜索时偶然发现了这个问题,现在完全没有答案,因此我将提供一个答案:


忽略此问题的特定于电子的本质,使用此标准的Web标准方法是使用服务工作者。这是一些有关此的文档:

我认为,即使在Electron内部,这也是解决此问题的最直接方法。 (Electron的一个优点是您可以使用一个已知的浏览器来完成此工作,但是我认为您要尝试做的事情完全适合服务人员旨在解决的问题空间。)


也就是说,我认为Sayam的评论/问题是正确的-如果此html / js是您电子应用程序的实际内容,并且假设它不会经常更改,则可以(也许应该)将其与应用本身。然后,您不需要为脱机支持做任何特殊的事情(只要html / js不需要基于网络的资源),并且对代码的更改将作为应用程序更新进行部署。

我个人认为,每周一次大约适用于此方法的最大更新频率。如果一个应用程序每月自动更新2到3次,这不会打扰我,但我认为如果可以的话,我会卸载一个每周更新2到3次的应用程序。


也许还有一些电子和/或节点模块可以解决这个问题,但是我从来不费吹灰之力,因为上述两个选项之一一直很适合我。

答案 1 :(得分:0)

老问题但仍然有效的用例(动态资产的离线缓存)。 here is article 描述了一种解决方案(自己的 ExpressJS 缓存中间件)。作者提出 npm library 来解决这个问题。