HTML5 - 如何使用远程但在清单中缓存的资源脱机工作?

时间:2011-11-16 18:31:44

标签: javascript ios html5 jquery-mobile manifest

HTML5清单允许指定资源的绝对链接,例如:

CACHE MANIFEST

http://www.xerox.com/downloads/usa/en/x/xes_3000Series_Brochure.pdf

Chrome / Safari控制台日志显示该文件已在清单文件中指定正确缓存。但是如何在iOS / Android上离线访问此文件?我在页面上完全按照清单,绝对URL推送链接,当我在线时它打开,在airplain模式下浏览器打开应用程序,但链接到pdf不工作,它说需要互联网连接,可能是合乎逻辑的,因为链接是绝对的,但我希望它首先检查清单。

也许有一些方法可以使用javascript访问清单缓存项目,并提供链接到文件作为缓存中的某个实例,换句话说,使其像具有亲戚网址的项目一样工作,这不会导致任何问题。或者其他一些解决方法。请指点我,我想念一下吗?

更新:我正在使用jQuery Mobile框架,也许这也有帮助,也许有人已经解决了这个问题,但我在文档和官方论坛中没有找到任何有用的问题。

2 个答案:

答案 0 :(得分:0)

您无法直接访问此资源。 AppCached文件只能通过其<html>标记中包含特定清单的网页进行访问。

当您访问PDF时,您将离开原始页面并且浏览器(正确地)忽略清单。

只是一个想法,您是否尝试将PDF嵌入<iframe>

答案 1 :(得分:0)

最好有可能在浏览器中打开pdf并根据需要为用户选择不同的阅读器。经过更多的测试后,我得出的结论是,你所说的是错的,尽管首先想到的是你是对的。即使您在清单中设置相对网址,也比在链接中使用相对网址时相对而言,无论如何,生成的网址对于浏览器都是绝对的,考虑到应用程序已缓存,但我可以直接访问该文件。之所以没有相对urls的问题,是因为它是小尺寸的图像,现在我正在处理大尺寸的pdf。我的结论是,您使用的相对或绝对URL无关紧要,如果缓存它们,您可以访问该文件。问题是iPad和iPhone的缓存限制为5Mb,如果清单文件大于请求您增加应用程序可用大小的设备,但它会完全停止缓存过程。所以我想我需要在一个部分和动态清单上查看5Mb的部分缓存的一些解决方法。所以现在它变成了一个不同的问题。哇!我认为这会更容易,该死的pdf))