2016-08-25 42 views
4

我已經使用節點webkit構建了一個桌面應用程序,並且需要緩存在線時通過應用程序查看的PDF文件,以便它們也可以脫機使用。我還沒有找到解決方案,但在測試期間,我注意到我之前在線查看的文件可以脫機使用,即使我還沒有爲此編寫任何代碼。因此這些必須已經被自動緩存。我做了一個搜索,找到文件正在保存的位置,但找不到任何東西。節點Webkit桌面應用程序 - PDF文件的瀏覽器默認緩存

任何人都可以解釋這一點或指向我在這方面的信息的方向,以便我瞭解它如何工作,並確保我的應用程序可以利用瀏覽器緩存的默認行爲?

******** UPDATE ***********

我已經找到了解決本地存儲的PDF文件,但是這不是我的查詢。我正在尋找一個解釋,說明如果沒有我編寫的代碼,脫機時可以使用PDF。這些文件必須自動存儲在其他地方,否則它們將如何顯示?

回答

1

節點的WebKit的默認緩存行爲由page-cache財產package.json控制:

"webkit": { 
    "page-cache": true 
}, 

只有典型的Web資源可以用這種方式(腳本,樣式表等)進行緩存。爲了能夠離線查看PDF文件,您可以手動存儲它們。

有幾種方法可以做到這一點:

  • 保存文件直接到磁盤(簡單的解決方案,只是將文件存儲在App.dataPath
  • 使用數據庫
  • 使用Web存儲
  • 使用應用程序緩存

所有這些都記錄在此處:Save persistent data in app

+0

嗨,我認爲我自己,但如果PDF需要手動存儲,當我沒有寫任何代碼來存儲他們時,他們如何仍然顯示當我離線?我以前在線查看的文件可以脫機使用。我試圖找出這是如何工作......他們必須緩存在某處 – LeeTee

0

緩存應用程序文件的默認位置在package.json清單文件中提及。當應用程序初始化時,清單文件中的設置將被默認加載。由於無法以編程方式訪問緩存文件,因此可以覆蓋默認文件手動。

獲取應用程序的數據路徑在用戶目錄窗口,你可以在你的包寫在傑森格式:

的Windows:%LOCALAPPDATA%/

你可以閱讀有關節點的其他緩存貪利webkit的文檔: http://docs.nwjs.io/en/latest/References/App/#appclearcache

+0

對不起,這仍然不解釋如何或在哪裏我的PDFS和圖像文件被存儲。我已經知道如何手動緩存我的文件。我所說的是,這個應用程序自動執行它,但我不知道它是如何做到這一點,或者它存儲文件或者存儲文件的時間。..... – LeeTee

+0

package.json manafest文件應該是什麼?在我的package.json文件中沒有提及緩存,所以它如何緩存?我已經知道如何清除緩存感謝。 – LeeTee

相關問題