【问题标题】:Node Webkit Desktop App - Browser default caching of PDF filesNode Webkit Desktop App - PDF 文件的浏览器默认缓存
【发布时间】:2017-01-01 19:28:30
【问题描述】:

我使用 node webkit 构建了一个桌面应用程序,需要缓存在线时通过该应用程序查看的 PDF 文件,以便它们也可以离线使用。我还没有找到解决方案,但在测试期间,我注意到我之前在线查看的文件可以离线使用,即使我还没有为此编写任何代码。因此,这些必须已经被自动缓存。我进行了搜索以找到文件的确切保存位置,但找不到任何东西。

谁能解释这一点或向我指出这方面的信息方向,以便我了解它的工作原理并确保我的应用程序可以利用浏览器缓存的默认行为?

********更新**************

我找到了在本地存储 PDF 的解决方案,但这不是我的查询。我正在寻找关于在没有我编写的代码的情况下离线时如何使用 PDF 的解释。这些文件必须自动存储在某个地方,否则它们将如何显示?

【问题讨论】:

    标签: node.js pdf caching node-webkit


    【解决方案1】:

    node-webkit 的默认缓存行为由package.json 中的page-cache 属性控制:

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

    只有典型的 Web 资源才能以这种方式缓存(脚本、样式表等)。为了能够离线查看 PDF 文件,您可以手动存储它们。

    有几种方法可以做到这一点:

    • 直接将文件保存到磁盘(简单的解决方案,只需将文件存储在App.dataPath中)
    • 使用数据库
    • 使用网络存储
    • 使用应用程序缓存

    所有这些都记录在这里:Save persistent data in app

    【讨论】:

    • 您好,我自己也是这么想的,但是如果 PDF 需要手动存储,为什么在我没有编写任何代码来存储它们的情况下,当我离线时它们仍然显示?我之前在线查看过的文件可以离线使用。我试图弄清楚这是如何工作的......它们必须被缓存在某个地方
    【解决方案2】:

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

    windows下要获取应用程序在用户目录下的数据路径,可以用Jason格式写在你的包里:

    Windows:%LOCALAPPDATA%/

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

    【讨论】:

    • 抱歉,这仍然不能解释我的 PDFS 和图像文件的存储方式或位置。我已经知道如何手动缓存我的文件。我的意思是,这个应用程序会自动执行,但我不知道它是如何执行此操作的,也不知道它存储文件的位置或存储多长时间.....
    • package.json manafest 文件应该在哪里?我的 package.json 文件中没有提到缓存,所以它是如何缓存的?我已经知道如何清除缓存谢谢。
    猜你喜欢
    • 2015-06-08
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    相关资源
    最近更新 更多