Node Webkit 桌面应用 - 浏览器默认缓存 PDF 文件

4
我用node-webkit构建了一个桌面应用程序,并需要在联网时缓存查看的PDF文件,以便在离线时也能访问。目前我还没有找到解决方案,但在测试过程中,我发现我之前在线查看过的文件即使没有编写任何代码,也可以在离线情况下使用。因此这些文件必须已经被自动缓存了。我搜索了一下,想找到这些文件保存的位置,但没有找到任何信息。
有人能否解释一下这是为什么,或者指引我找到相关信息,以便我了解它的工作原理并确保我的应用程序可以利用浏览器缓存的默认行为?
********更新***********
我已经找到了本地存储PDF文件的解决方案,但这不是我的问题所在。我正在寻找一个解释,即这些PDF文件如何在没有我编写的代码的情况下离线访问。文件必须已经自动存储在某个地方,否则它们将无法显示。
2个回答

1
默认情况下,node-webkit 的缓存行为由 package.json 中的 page-cache 属性控制:
 "webkit": {
     "page-cache": true
 },

只有典型的网络资源(脚本、样式表等)可以以这种方式进行缓存。要能够离线查看PDF文件,您可以手动存储它们。
有几种方法可以做到这一点:
  • 直接将文件保存到磁盘(简单解决方案,只需将文件存储在App.dataPath中)
  • 使用数据库
  • 使用Web Storage
  • 使用应用程序缓存
所有这些都在此处记录:在应用程序中保存持久数据

嗨,我也曾这么想过,但如果PDF需要手动存储,为什么在离线时它们仍然显示出来,而我又没有编写任何代码来存储它们呢?我之前在线查看过的文件在离线时是可用的。我正在尝试弄清楚这是如何工作的......它们一定被缓存在某个地方。 - LeeTee

0

应用文件默认缓存位置在您的 package.json 清单文件中提到。当应用程序初始化时,清单文件中的设置会被默认加载。由于无法通过编程方式访问缓存的文件,因此可以手动覆盖默认文件。

要获取用户目录中 Windows 应用程序数据路径,可以在包中以 Jason 格式编写:

Windows:%LOCALAPPDATA%/

您可以阅读 node webkit 文档中关于其他缓存方法的介绍: http://docs.nwjs.io/en/latest/References/App/#appclearcache


抱歉,这仍然没有解释我的PDF和图像文件存储在何处以及如何存储。我已经知道如何手动缓存我的文件。我的意思是,这个应用程序会自动执行此操作,但我不知道它是如何执行的,文件存储在哪里,以及存储多长时间... - LeeTee
包管理文件 package.json 应该放在哪里?我的 package.json 文件中没有提到缓存,那么它是如何进行缓存的呢?我已经知道如何清除缓存了,谢谢。 - LeeTee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接