应用程序缓存和本地存储

时间:2016-07-21 19:04:40

标签: html5 pdf caching local-storage html5-appcache

我需要一些帮助来构建一个新的应用程序。

它的要点是,我们将拥有一个基于网络的应用程序,可以提供本质上相当大的PDF,从2mb到100mb。这将是一个拥有数百名用户的内部网(而非互联网)应用程序。用户将查看PDF内联(即嵌入在网页中)以及自定义导航。点击导航链接将在查看器面板中加载不同的PDF(不,PDF书签在这种情况下不能解决相同的问题)。

查看器部分更容易 - 只需将其嵌入iframe,Acrobat或pdf.js等中。

(这是我们所获得的一个很好的视觉示例:http://partstore.agriculture.newholland.com/us/parts-search.html#epc::mr48569ar123471 - 我们不会看到拖拉机零件!但它与功能类似。)

我们担心的主要问题是:a)流量。每次在网络上加载/重新加载大型PDF将消耗不必要的资源。 b)它需要脱机工作以获得预先缓存的内容。用户可以下载/缓存数百个PDF。看起来HTML5的新功能在这里会有很大的帮助。

所以,我开始查看Application Cache来缓存应用程序文件。我知道这个的一些缺点,但这是显而易见的路线。但似乎您必须显式声明要缓存的文件。这对应用程序文件非常有用,或者如果每个用户都缓存了相同的内容。但是用户应该能够点击"预加载这500张PDF,以便我可以离线查看它们"。这超出了应用缓存清单。

所以我正在查看localStorage选项,但我不清楚 我可以如何利用它。用户需要预加载数百个PDF。在线时,应用程序应将其从服务器中拉下来,然后应用程序在离线时引用缓存版本 - 如果服务器上的PDF最近没有更新,则甚至可以联机。我应该查看哪些API?这将如何与应用程序缓存相结合?

另外,我们的企业标准是IE11和Chrome(目前为v50)。强迫一方或另一方都没问题。我对本地存储的理解是应用程序必须请求无限存储(请参阅此处https://developer.chrome.com/apps/offline_storage)。这也没关系,但我不清楚我是否需​​要创建一个正式的Chrome应用程序?

我能想到的最近的例子是Google Drive。不知何故,它加载文档/电子表格/等。离线,这样,如果您访问与互联网断开连接的drive.google.com,则会加载这些文件。然而,这些文件是动态的,显然不在缓存清单中(对吧?)。 Google云端硬盘如何离线存储这些动态文件,应用程序如何知道从缓存/本地存储而不是从Internet加载?

相比之下,我会遇到像PDF这样的二进制数据的任何问题吗?

赞赏的想法!

由于 汤姆

0 个答案:

没有答案