簡體   English   中英

ElectronJS - 從遠程服務器緩存 HTML 和 JS 文件

[英]ElectronJS - Cache HTML and JS files from remote server

我有一個電子應用程序,它使用函數mainWindow.loadURL('http://www.example.com/index.html')從遠程服務器檢索應用程序文件(.html 和 .js mainWindow.loadURL('http://www.example.com/index.html')

如果用戶與 Internet 的網絡連接脫機或斷開連接,則會出現問題。

電子中有沒有辦法緩存html和js文件,這樣如果用戶離線,電子會自動從緩存中加載。

我曾嘗試使用 HTML5 應用程序緩存和 webpack 插件https://github.com/NekR/offline-plugin但這些似乎不起作用。

我看到這是一個老問題,但我在進行半相關搜索時偶然發現了這個問題,現在根本沒有答案,所以我將提供一個:


忽略此問題的特定於電子的性質,執行此操作的網絡標准方法是使用 Service Workers。 這里有一些關於這個的文檔:

我認為這將是解決這個問題的最直接方法,即使在 Electron 中也是如此。 (這里 Electron 的一個優勢是你有一個單一的、已知的瀏覽器來完成這項工作,但我認為你正在嘗試做的事情非常適合 Service Workers 旨在解決的問題空間。)


也就是說,我認為 Sayam 的評論/問題是有效的——如果這個 html/js 是您的電子應用程序的實際內容,並且假設它不會經常更改,您可以(也許應該)將它與應用程序本身一起分發。 然后你不需要為離線支持做任何特別的事情(只要 html/js 不需要基於網絡的資源),並且對該代碼的更改部署為應用程序更新。

我個人認為每周一次是這種方法適用的最大更新頻率。 如果應用程序每月自動更新 2 或 3 次,我不會打擾我,但我想如果我有這個選項,我會卸載每周更新 2 或 3 次的應用程序。


可能還有一些電子和/或節點模塊可以解決這個問題空間,但我從來沒有費心去看,因為上述兩個選項之一對我來說似乎總是合適的。

老問題,但仍然有效的用例(動態資產的離線緩存)。 這是描述一種解決方案的文章(自己的 ExpressJS 緩存中間件)。 作者制作了npm 庫來解決這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM